Cesium learning materials update

I’m currently working on a reorganization of all the Cesium tutorials, and our learning materials in general. Since we’re all about fostering a collaborative environment, I wanted to open up the discussion to the community. The more feedback the better! Experts and new users welcome!
Forum discussion here: https://groups.google.com/forum/?hl=en#!topic/cesium-dev/trCbTMWdM5M
So far, I've been focused on tutorials, but feel free to comment on other resources (Sandcastle, blog, etc also.
Overall roadmap
Re-envision tutorials

[ ] Create a Cesium overview tutorial (very short), as "tutorial 0"
[ ] Restructure and cleanup existing tutorials
[ ] Add stronger linkage to sandcastle examples, eg. links to all the relevant examples at the end
[ ] Increase tutorial coverage (request contributions from the appropriate parties)
[ ] Embed Sandcastle examples (longer term)

Re-envision Sandcastle

[ ] Comment / Clean existing examples. Link to tutorials when appropriate.
[ ] Create an index page
[ ] Make examples more granular and short
[ ] Improve coverage (request examples from appropriate parties)

General Tutorial Notes

We should embed Sandcastle examples in our tutorials

So much of our tutorial lengths are images and code examples followed by links to the sandcastle examples they use.
See Book of Shaders

There should be some differentiation between tutorials and tech explanations.

Most newcomers will want to get started quickly, and don't need exposure to underlying technical concepts right out the gate.
How much underlying detail is helpful in tutorials? If it doesn’t belong in the tutorials, where should it go?

We should have an overall quick start guide

that discusses the anatomy of a Cesium app
with links to relevant tutorials
a brief overview of Cesium's features for newcomers.

Category headers / section divisions

Are really important for readability and conceptual granularity. Worth reorganizing.
Could we auto-gen a table of contents per tutorial? Or have sub-sections in the sidebar?

What topics deserve tutorial coverage that aren't already there?

Proposed New Tutorial Structure
Quick start guide (very short)

What is Cesium?
Basic structure of a Cesium App

Links to all the relevant tutorials
Basic navigation

Feature overview
Resources overview
Sandcastle links: index page (which also needs to be created)

Cesium up and running

Get browser Cesium-ready
Selecting an Editor of IDE
Downloading a Cesium release
Setting up a web server
Resources
Sandcastle links: Hello world, Cesium widget

Imagery Layers

Adding Imagery
Ready to use imagery
Imagery providers
Blending imagery layers
Cross origin resource sharing
Resources
Sandcastle links: imagery, imagery adjustment, imagery split layers, imagery layers manipulation

Terrain

Adding Terrain
Enabling terrain lighting and water effects
Ready to use terrain
Terrain providers
Resources
Sandcastle links: terrain, terrain exaggeration,

Creating Geometry

What is an Entity?
Our first entity
Shapes and volumes

Link to Materials and outlines
Link to 3D Models
Link to Points, billboards and labels

Heights and extrusions
Selection and Infobox Description

Picking
Link to camera controls

Managing entities

List info, remove, add

Time-dynamic Entities
Sandcastle: All the geometry ones! Display distance conditions, picking, show or hide entities, materials

Points, Billboards and Labels

Basic example
Positioning
Sandcastle links: billboards, labels, points, clustering, map pins, ground clamping,

Entity Styling

Materials
Outlines

3D Models

Adding a model
Basic properties
Animations
Picking
Converting collada to glTF
Troubleshooting
Resources
Sandcastle links: 3D models, 3D model coloring

Camera

Default controls
Camera Basics
Camera Positioning and Animation
Custom camera mouse/keyboard events
Screen space camera controller
Resources: camera tutorial, camera, headingPitchRoll, localToFixedFrame

Primitive Geometry and Appearances

What are Primitives?

Primitives vs Entities
Link to Creating Geometry

Primitive Basics
Geometry instances

Updating per-instance attributes

Combining geometries

Picking

Appearances

Geometry and Appearance Compatibility

Sandcastle links: geometry and appearances

Proposed Sandcastle example organization (WIP)

Basics / Beginner

Hello World
Cesium Widget
Rotatable 2D map?

Camera and Views

Camera
Camera Tutorial (rename?)
Cardboard

Imagery

Imagery
Imagery adjustment
Imagery split layers
Imagery layers manipulation

Terrain

Terrain
Terrain exaggeration

CZML

All the CZML ones

Drawing and Styling Shapes

Geometry

All the basic geometry ones
3D Models

3D Models Coloring

Billboards, Points and Labels

Billboards
Points
Labels
Map pins
Clustering
Starburst

Styling and visibility

Distance display conditions
Materials
Show or hide entities
Shadows

Thoughts, @slchow , @hpinkos , @pjcozzi ?

Should we embed sandcastle tutorials?
That would be great.

There should be some differentiation between tutorials and tech explanations.
If they're truly newcomers, maybe it's better to encourage them to sign up for Composer than have a super friendly intro to a library that will require fairly advanced skills to implement.

How much underlying detail is helpful in tutorials? If it doesn’t belong in the tutorials, where should it go?
It wouldn't hurt to start a blog series of short entries explaining basic technical workings of Cesium. That would streamline the tutorials, and you could link to the blogs (perhaps even with an icon) to find out more.

We should have an overall quick start guide
Yes!

Category headers / section divisions
Yes! Better headings and navigation would be really useful. I can't speak to the content here, so as far as that goes, you'll probably get better feedback from the community. I did read through all your reorganization in detail, and it looks good to me. I love the idea of breaking it down into smaller chunks and having better navigation between sections.

From a purely user perspective, I find navigating Cesium globes pretty difficult (unless I'm on a touchscreen). Maybe as part of this a clearer explanation in the built-in hints explaining how to get around?

From the forum:
"One issue I recently got caught on was how to listen to property changes, and I was given a solution on the forum (see here).  I don't see how I would have known how to do this by reading the documentation.  So if I could wish for another tutorial, it would be one to cover advanced coding and customization techniques for Cesium.
But generally I use the Code Examples gallery to learn how to use the API, so my preference would be to see that maintained and grown."
https://groups.google.com/d/msg/cesium-dev/mW0VxrU3yhA/jUB8kTdNBAAJ

Increasing tutorial coverage
We have a lot of sandcastle examples with no associated tutorials. For the really minimal examples, this is probably fine, but here are some topics that I think may merit new tutorials, even if just short ones. As always, please comment / add / delete, or let me know if I've missed something @slchow @pjcozzi

CZML (in general)
Interpolation
Map modes (2D, 3D, CV)
Shadows
Label / billboard styling in general (e. clustering, starburst etc)
Cesium inspector and how to use it

This is just a brain dump of some of my thoughts while reading the above, I'm sure I'll have more feedback as time goes on.

Get browser Cesium-ready
Selecting an Editor of IDE
Downloading a Cesium release
Setting up a web server

I think we have to be really careful about trying to teach our users how to program vs teaching our users
how to develop with Cesium. We need to assume they have some base level of competence in web development and provide some links to external/third party tutorials if they don't.
Many of our users use npm to install Cesium, our tutorials should probably cover that as well.
I feel pretty strongly that what we need is quite a few boilerplate Cesium examples for different stacks, for example a bunch of hello world applications for Cesium with Angular2, React, ASP.NET etc.. maybe with different build systems like Webpack.  A non-trivial portion of our forum posts involve questions like "How do I use Cesium with...?"
As for Sandcastle, I think as a whole, we need many more fine-grained targeted examples.  Many of our examples could also be split up into multiple examples as well.  We should use forum questions as a way to help drive creation of Sandcastle examples.  We also need way more categories and I think your WIP layout has some holes in it that will become obvious as we reorganize.

Time-dynamic Entities

Time in general needs way more than a single bullet point, and it goes way beyond entities.
I don't see much here about picking and interaction or dynamic modification of objects.  This is a major issue that comes up all of the time on the forum.
Your outline doesn't mention Scene at all, which is a really important part of Cesium that needs to be understood.
I also don't really see any mention of widgets.
I think we have to be careful to not make our Sandcastle examples too abstract.  In my experience, concrete use cases serve as better instruction than trying to each ideas (at least as far as code samples go).
I didn't see any mention of geojson, kml, or working with external data sources
Also, no mention of streaing realtime or pseudo realtime data, which comes up quite a bit on the forum as well.

Cross origin resource sharing

This is a Cesium-wide issue, not specific to imagery layers.
Saving and storing a Camera view across scene modes comes up all of the time on the forum.  Same for how to take screenshots with Cesium (and the more advanced case of capturing video).

Forum request for SampledProperty Sandcastle example with rotation:
https://groups.google.com/forum/?hl=en#!topic/cesium-dev/gb4HdaTTgXE

As part of my quest to reorganize Sandcastle, and become more of a forum debugging ninja, I'm reading through all the Sandcastle code. As I go, I'll add a few clarifying comments where I think them helpful. To keep the discussion open, I'll add fine-grained pull requests with my comment additions for however many examples I go through each day.

can anyone help me to make cockpits by cesium js

Like this


Feat: Added normalized hyperparams

Added normalized values to subnet hyperparameters command.
More context here: link

@ibraheem-opentensor looks good. Could we add tests?


Fetching meta data for multiple records

I need to fetch meta data for multiple items. I can do this by using MetadataFor for each item, but this becomes slow if I have many records.
Use-case
Imagine I have an object with fields field1 and field2. I now want to return to user a list of these objects with additional fields isDeleted and lastUpdated.
Currently to accomplish this I need to fetch all objects then fetch meta data for each object and finally merge fetched information together.
Request
Add a method to fetch meta data for multiple records or allow to fetch meta data at the same time as you do actual data fetching.

@jeremydmiller can you please review this to see if we need to keep it open as an enhancement or close this.

Meh, I don't know. It's not huge, but I don't see it being super commonly used either. I think I vote to close.

Here, I'm calling this one. I don't think this would get used enough to be justified


accelerometer isn't available to custom widgets

meaning that the VR demo doesn't work :'(

The issue seems to be the scalar webpage that embeds the VR demo into an iframe.
Do motion events go through iframes?
With a simpler test page, https://www.audero.it/demo/device-orientation-api-demo.html works fine into a UIWebView but it does not work anymore once embedded into a scalar URL (https://scalar-staging.riot.im/scalar/api/widgets/generic.html?url=https%3A%2F%2Fwww.audero.it%2Fdemo%2Fdevice-orientation-api-demo.html&scalar_token=[your_scalar_token])

Android does not have this issue.


It is possible to get story viewers?

At the moment there isn't a class that handle your request, I guess. But to get stories insight Instagram API provide an endpoint to receive the information required: "/media/insights". You can try to develop a class that handle that or if I will find time, I will try to implement that by myself

that would be very cool. I also need the "who watched the story" method

I've just finished yesterday to develop the request for story user. I'm doing some test and then I will make a PR

This will help me a lot.

@vadimTovstik Ok, I've done a PR about story viewers, try to test methods and let me know. Everything should work


[FEATURE] document loader field input should support variable or API request payload

Describe the feature you'd like
In this case, I want use Cheerio Web Scraper document loader, but the url field is required and must be a real url, but I want input a variable, set by api request payload or question info

any way to solve this problem ?

you can just pass in the url in API request body, it will override it:
{
    "question": "whats my name",
    "overrideConfig": {
        "url": "some-url"
    }
}

you can just pass in the url in API request body, it will override it:
{
    "question": "whats my name",
    "overrideConfig": {
        "url": "some-url"
    }
}

it works, thank u so much


drop rules don't make much sense

It's really hard to grasp dropByPeriod being inclusive not exclusive. To understand it, you have to be aware of rule orders.
Moreover, the time parameter doesn't make any sense (the examples having 100 years proofs the point).
It would probably make more sense to just have a "dropSegments" rule w/o any parameter, bonus points for forcing it to the end of the rule list.
Once you got there, just unloading everything that's not explicitly loaded and totally getting rid of the drop* rules makes even more sense.

I am closing this issue as I believe dropForever rules have solved this problem. We should open a separate issue to discuss not needing explicit drop rules.


DigitalIO library support for Bean Loader

I am working on a Bean project that requires the use of analog signal inputs and I2C devices. As I understand it, the Bean (https://punchthrough.com/bean) has the same two pins assigned to ADC and I2C functions.
Do you have any plans to support software I2C libraries such as DigitalIO http://platformio.org/lib/show/200/DigitalIO or SoftI2CMaster https://github.com/todbot/SoftI2CMaster for the Bean Loader?
Thanks,

@mplewis please answer.

Just checking to see if you had a chance to consider this.
I've posted the question on Beantalk too.
http://beantalk.punchthrough.com/t/cloud-compiler-library-requests/1101/86?u=mmix2009
Thanks,

Thanks. I close this issue because it isn't related to PlatformIO Repository.

Thanks for posting @MMIX2009! That thread on Beantalk is the best way to reach us for Cloud Compiler library requests.

Hi @mplewis,
Thanks for responding. Any chance you can support this library in the Bean Cloud Compiler soon? I have an active project where I need this and using the Arduino IDE + Windows loader has not worked for me. Thanks.

To your point: I am hoping for a response in the Beantalk thread. Thanks.


Milestone 5 feedback

Team ABG (16) (ex-C7) (C1)
Vincent: reviewing Crystal Home/Explore page
Overall a pretty solid prototype that I was able to get a gist of after looking at it for a while. I was a bit confused by what takes you to and from the list view from the map
Allen: reviewing Luis - classroom ordering/entering
I was confused by the image of the map that was drawn for this paper prototype. Would the map also be a grid view with an image of the campus, or would the map be just of the campus with the inputted locations pinned? It's not explicitly clear.
Yuxiao: reviewing Daniel's map hot spots:
I was confused by the rating system since it will be hard to rate every available place with study/eat/rest. Instead, maybe a tag system will be better. imagine HiThai is tagged with "eat" by 400 people and "study" by 100, then the person looking at the ping on the map will have a rough idea of what the place looks like: a dining place with study space
Rishi: reviewing Grant - Classroom Finding
I was confused by how everything would fit on one screen and how users  would interact with the prototype. Would they zoom or scroll to interact with the map? Especially when the route is long, or the map is very detailed, it could be hard to understand the information.

Team Guography (C8)
Nick Campbell
The next feature I want to see is the implementation and inclusion of floor-plans of specific UCSD buildings. I would love an app or website that allows me to not only find buildings, which Google and other map services can already do for me, but actual classes, stores, restuarants, and conference rooms and how they are actually situated within the building. It seems like a daunting task if the information isn't readily available, but would be a very cool feature that definitely solves actual real-world campus navigation issues.


'user.othermail' not available for selection in "nameidentifier" claim

When configuring SSO via SAML to a HANA DB, the "Manage User Claims" setting does not have a value for "user.othermail" in the drop down list for claim name "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
However, when adding a new claim name, the "user.othermail" is available for selection.  And when attempting to delete "nameidentifier" from the list of claim names, it is not allowed as the claim is mandatory.
Please advise on how I can edit "nameidentifier" claim to transform "user.othermail" with ExtractMailPrefix function.
Thanks in advance.

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

ID: d362c1b5-1460-4de9-c53d-f0ec1ef07742
Version Independent ID: 9dc0a4df-81c8-13eb-720f-f589a3712e42
Content: Customize claims issued in the SAML token for enterprise applications in Azure AD
Content Source: articles/active-directory/develop/active-directory-saml-claims-customization.md
Service: active-directory
GitHub Login: @CelesteDG
Microsoft Alias: celested

@klchung I do think that User.otherMail is available for nameidentifier claim.  You may need to add a new claim to get the user.otherMail or edit other existing attribute to get this claim.

Thanks for the response.
And, yes I have added a new claim to retrieve "user.othermail" value but I am not able to pass this value to HANA DB to consume as a logon ID for automatic user creation in HANA DB.  For automatic user creation in database, it uses the value provided by "user.nameidentifier" in which I was not able to modify to ExtractMailPrefix(user.othermail), unfortunately.


Documentation for Kabanero events phase 0

Note that this will not be GA function. Documentation in the repository's README only.

README updated.


Update MQTT clients in Python web services

Recommendation Service and Web Store UI are using Python code to connect to the MQTT broker. Both services use an old version of fast-mqtt library (worth upgrading) and both force MQTTv311 version of the communication protocol.
Update the code and:

Use the newest MQTT library
Use MQTT v5

Fixed with #33, #36


Fix typo in path_info of failed AccessAttempt creation

Fixes typo introduced in commit ebf9ca89ee083eebf692c1dbfbff5d588b6abe05

Coverage decreased (-0.1%) to 91.547% when pulling 59e5c3e6e768f7dd607ed7740e87d161a09f63bc on EvaSDK:failed-access-attempt-tuple into 87731d180eba7c401c69e318c57c4dbb88d4d170 on jazzband:master.

Thank you. This is no longer needed.


[WIP]Implementation for Java SDK

What do these changes do?

Related issue number

Fixes #60

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: zhanglei1949:x: xiaolei.zlxiaolei.zl seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @zhanglei1949 ,
Thanks for your first commit!
You may want to address the building error in CI and fix the warnings detected by codefactor.

Hi @zhanglei1949

Please reorg the files, the root java is confusing. A suggested place for java sdk is /analytical_engine/jdk
Maybe the java artifactId grape-jdk under groupId com.alibaba.graphscope would be better.

OK, working on it!

Hi @zhanglei1949

Please reorg the files, the root java is confusing. A suggested place for java sdk is /analytical_engine/jdk
Maybe the java artifactId grape-jdk under groupId com.alibaba.graphscope would be better.

Hi @yecol, Thanks for your review comments! Now all grape-jdk related files are under analytical_engine/java, and the groupId is changed to com.alibaba.graphscope, three maven project are named to grape-jdk, grape-runtime, grape-deme.

grape-jdk contains the only  java interfaces.
grape-runtime contains the implementation and runtime needed utilities.
grape-demo contains some sample apps write with grape-jdk

Could you please check these changes, thank you!

Thanks for your detailed and constructive comments! @sighingnow @lidongze0629 @yecol @luoxiaojian
Closing and merging now!


Open directory with a desktop-agnostic command

using xdg-open enables to open the job directory without failing in Linux, even if the default file browser is not Nautilus.

Hi @hmenager,
we really appreciate your contribution, it looks fine. Since electron has its "native" functionality:
https://electronjs.org/docs/api/shell
i came up with this solution:
https://github.com/rabix/composer/commit/26b6ec0a555f47f16917c7435a617b981becbf53


Fix tasks spawned by tower_batch::Batch only being alive during one test execution

Motivation

While implementing tests in #2371, I ran into an issue that caused the tests to fail in CI. As far as I understand, the issues arises because of three things:

tower_batch::Batch::new spawns a task in the Tokio runtime;
the primitives::*::Verifiers are stored in shared global variables, properly handled by Lazy wrappers;
#[tokio::test] creates separate runtimes for separate tests

This means that shared batch verifiers will spawn a task on the runtime that first uses it, but that task will not survive for the next runtime (i.e., the next test execution), causing it to fail.
The #2371 PR included a workaround that runs two tests in a single runtime, in order to guarantee that the underlying spawned task is alive for both of the tests.
Note: I think it's important to mention that this issue only affects tests, since in a running Zebra instance I think there should only be one Tokio runtime.
Additional work

[ ] Separate the two tests that compose the v4_with_sprout_transfers in zebra_consensus::transaction::tests.

Solution Ideas
This section contains some things I considered while investigating the issue and trying to find a solution or workaround.
Create an independent verifier for each test
Add a zebra_test or batch verifier function that creates an independent verifier.
This solution is robust, because tests can't affect each other.
We can simplify the tests by moving verifier setup code into a common function or method.
Create a global verifier tokio runtime
Add a zebra_test function that enters a shared verifier tokio runtime:
https://docs.rs/tokio/1.7.1/tokio/runtime/struct.Runtime.html#shutdown
The first test creates the shared runtime, the others just re-use it.
Remove global shared verifiers
This might be the simplest solution, but I'm not sure if it violates any existing design decisions that could lead to more issues in the future. I'm not entirely sure, but I think that currently the global verifiers are only used inside zebra_consensus::transaction::Verifier, which is in turn only used inside zebra_consensus::block::Verifier, and that is only used inside the zebra_consensus::chain::init function.
If the scope is indeed limited, it might be possible to just remove the global shared verifiers so that they are just instantiated inside the transaction::Verifier. If the verifiers are instantiated elsewhere and sent to the transaction::Verifier through generic type parameters, it could also help with testing, because mock verifiers could be sent.
The advantage is its limited scope and possible simplicity. The disadvantage is that it might affect an active design.
Create a RestartableLazy type for tests
Since the issue arises because the Batch service is created only once, it might be possible to override the Lazy implementation when in #[cfg(test)] with a RestartableLazy type, that exposes a restart method that forces the verifier to be recreated. This type can then be aliased to Lazy when building the tests.
I looked into how hard this can be, and the Lazy implementation is quite simple. However, there is one big issue. Lazy is safe because it can assume that the inner value will never change (or will only change through &mut Lazy. In our case, the Lazy is placed in a global variable, so changes would have to happen through a &Lazy reference, and that requires runtime checks, like using RwLock and RefCell. That also makes things harder for implementing Deref and DerefMut, because it's not a simple dereference, but actual usage of guard types.
More research would be required to have a good implementation. The advantages are that it should be minimal change to the existing code, and it would only impact tests. The disadvantages are that the new type has some complex edge-cases that need to be figured out, and that the tests would run through a separate path than actual code, which can be risky.
Refactor tower_batch::Batch to not spawn the worker task
The idea here is to have some sort of SharedFuture type that wraps the actual worker.run() future in an Arc, so that this future can be included in all returned ResponseFutures. This means that the worker progresses every time the ResponseFuture is polled.
The difficulty here is to poll a shared future, so the SharedFuture abstraction might come in handy to isolate the complexity. The future might need to be in an Arc<tokio::sync::Mutex<...>>, and acquiring the lock might be a little complex, since first it requires polling the future to acquire the lock, then polling the actual future, and ensuring the obtained guard is dropped so that it is never held between poll calls.
The advantages are that this makes tower_batch more robust, and that no code outside tower_batch would need to be changed. The disadvantages are that the SharedFuture abstraction needs to be properly implemented, and that the worker no longer runs in a separate task. The latter can be mitigated by having the actual response spawned in a new task, but the user of the library must be aware of this.
Recreate the worker task if Batch detects that it has stopped
This can be done in #[cfg(test)]. There is already a check to see if the worker is alive, so the change would be to update that code to respawn the task. To do so, the service would need to be wrapped in an Arc, so that it can be shared between the multiple worker instances that end up appearing. Other parameters (max_items and max_latency) will also need to be stored in the Batch in order to recreate the Worker.
If this is done only in #[cfg(test)], the extra Batch fields will also require that attribute, which might make the code harder to read and possibly easier to make mistakes.
The advantage is the limited changes. The disadvantages are the possible performance, memory and/or code readability hit.
Related Work

A potential solution might be related to #1951

I think we should deduplicate the batch verifiers before doing this task

We can't re-use the same tokio runtime in all the tests, because some tests pause and advance Tokio's internal time.

Yep, which is why that solution worked for #2371, but will likely not work for some new test we implement soon :(

If the scope is indeed limited, it might be possible to just remove the global shared verifiers so that they are just instantiated inside the transaction::Verifier. If the verifiers are instantiated elsewhere and sent to the transaction::Verifier through generic type parameters, it could also help with testing, because mock verifiers could be sent.

I think this is doable. The goal with the global batch verifiers is to amortize signature/proof verification across many transactions, including across blocks, so if the TransactionVerifier is the same across those, that seems doable.


Fails to compile: macro not supported

Hello.
Really not sure how to fix that one, sorry.
error: #[ctor] is not supported on the current target
   --> …/value-bag-1.0.0-alpha.6/src/internal/cast/primitive.rs:206:9
    |
206 |         #[ctor]
    |         ^^^^^^^
    |
    = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

# uname -a
DragonFly probe2 5.9-DEVELOPMENT DragonFly v<IP_ADDRESS>4.g3256de-DEVELOPMENT #169: Sat Aug  8 14:08:28 EEST 2020     arcade@probe2:/usr/obj/usr/src/sys/DMIN  x86_64

# rustc -V
rustc 1.50.0

Thanks for the report @kworr! It looks like this check is incorrect and should probably be conservatively tied to just Windows, Linux, and OSX.


Gracefully throw exception instead of using fatalError

Hi. I think as a library, SSK should gracefully throw an exception and let the application handle it instead of crashing the app.
What do you think? @ZachNagengast
https://github.com/ZachNagengast/similarity-search-kit/blob/d591adc15ebadfdc43f1fd63fc62863478f9b970/Sources/SimilaritySearchKit/Core/Index/SimilarityIndex.swift#L119

Yes very much agreed.
It would be great to know why this is failing if you have any more debug info.
https://github.com/ZachNagengast/similarity-search-kit/blob/d591adc15ebadfdc43f1fd63fc62863478f9b970/Sources/SimilaritySearchKit/Core/Index/SimilarityIndex.swift#L115-L121
In the meantime, this can definitely fail more quietly.

@longseespace this should be addressed in release 0.0.9 https://github.com/ZachNagengast/similarity-search-kit/releases/tag/0.0.9 but definitely lmk if you get anymore info about why the setupDimension is failing sometimes.


Experimental DataFusion integration

Load an .rrd from disk, then implement datafusion::TableProvider and try do some queries.
Let's not use re_arrow2 for this, but write all new code using arrow.

More specifically, I think this should load the RRD into a ChunkStore, and then implement the DataFusion traits on top of ChunkStore.
An even better solution would be to implement the traits on top of something like StoreHub instead, in order to make cross-recording queries possible, but given the current state StoreHub and how coupled it is to the Viewer at the moment, that's probably not realistic. (Then again we are gonna need to fix that coupling at some point too.)


[HOLD for payment 2024-09-17][Search v2.2] [App] Create status bar (Chat)

Implement this section of the design doc
Issue OwnerCurrent Issue Owner: @twisterdotcom

Still waiting on doc reviews.

@Expensify/design can I get the Invoices and Trips illustrations exported for App use please? https://www.figma.com/design/YHaWaw3F0PgxqI0tXHJVeY/Search-v1-v3?node-id=882-235709&t=KeEWs0szPlOnILzT-0

Thank you!

@shubham1206agra will be taking on the implementation!

Here you go: simple-illustration__commentbubbles.svg.zip

Not overdue, we're currently working on opening the draft PR.

This PR was deployed to production yesterday.

Payment due in next Tuesday (I'll be out, so I'll try to pay out Monday/Wednesday).

Okay, payment summary (@luacmartins correct me if the price is wrong. I'm defaulting to $250 because nothing else was specified here and there's no High Priority label.

@shubham1206agra paid $250 via UpWork here (Contributor)
@ikevin127 paid $250 via UpWork here (C+)

@twisterdotcom prices are correct. We've been paying the default $250 for all search related issues.


Ability to only parse dates in the future

I would like to have the possibility to set a "latest" date which the parser should match against.
For instance, if i write Sunday on a Monday, I don't want to match yesterday but next Sunday.
In my particular case i would like to only match dates in the future.
Maybe this is something that's already supported but I cant find anything in the documentation about it.

It's certainly not supported currently. What would be the behavior in the case of an earlier date? Return Null? Undefined? False? Throw? I'd lean towards the same behavior as non-parsable dates/invalid strings.
Thoughts?

I would say that if it would'nt match "yesterday" for instance, just return the same result as non-parsable date. What I've seen in other libraries is that you can pass a reference date to parser which could be nice.
In sugar.js there is two functions called future and past that do this, as far as I can tell. Maybe that is something to look into?

Well the sugar.js ones merely prefer past or future dates - they don't limit. Rather major difference.
Would that be preferable or were you specifically looking for a limit?

Well, for my specific purpose I would like to be able to limit the parsing to dates in the future. For instance, if I'm selling tickets for events, there is no point in trying to sell tickets in the past.
And my concern in this case is that if i write monday today(wednesday) I would like to get the next monday, not the day before yesterday.

Ah, yeah... that specific behavior is a fun one.
Well in your case the "prefer" behavior would work best anyhow really wouldn't it? it would prefer next monday not this monday and therefore satisfy the requirements?
I like the idea of the .past and .future functions but would prefer to keep a common API as one has been established by Sugar.js in this case.

I'm sorry, I'm not following now. If you don't want to add .past and .future, how would you want to handle it?

No, I DO want to. Just clarifying that if I did and followed the Sugar,js API and behavior that that would work for you...?

Yes, absolutely. I would gladly help but at the moment it would take to much time to just figure out the flow of the parsing and such. Do you have any idea of a time scale on this?

Unfortunately it's not going to be very soon - I'm really the sole developer on this and have had my time taken up with paid work, and will likely be pretty swamped during the summer.

Oh ok, well in that case I might be able to get something sorted out sooner. Kind of new to how github works, but do i just check out the code, modify and do a pull request?
If you allow contributors that is?

Yup! I'd highly encourage contributors! Not least because I have limited time lately.
Basically you fork the repo, make the edits, add some tests, and then create a Pull Request for it. Then I can review the changes, and we can discuss any tweaks, and it can be merged into the master branch here.

Ok, sounds solid! I'll see what I can get rolling in the next couple of days. But just to be clear, a .past .future solution is preferred?

Yep! One that doesn't ignore dates (you might explicitly pass a past date in) but prefers them (like in your use case of when "monday" is)


Can't install Renderman addon in Blender - Ubuntu 20.04

Hi,
I've installed Renderman using the installer, but I'm unable to install the addon.
Getting those errors:
Traceback (most recent call last):
File "/media/lukas/VFX/.Pipeline/Blender/blender-latest/4.0/scripts/modules/addon_utils.py", line 401, in enable
mod.register()
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/init.py", line 87, in register
load_addon()
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/init.py", line 56, in load_addon
from . import rman_presets
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_presets/init.py", line 29, in
from . import ui
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_presets/ui.py", line 45, in
from . import rmanAssetsBlender as rab
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_presets/rmanAssetsBlender.py", line 38, in
from . import core as bl_pb_core
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_presets/core.py", line 20, in
from ..rman_bl_nodes import BL_NODES_MAP, RMAN_NODE_TYPES
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_bl_nodes/init.py", line 34, in
from . import rman_bl_nodes_sockets
File "/opt/cgru/plugins/blender/addons/RenderManForBlender/rman_bl_nodes/rman_bl_nodes_sockets.py", line 28, in
from bpy.types import (NodeSocketFloat,
ImportError: cannot import name 'NodeSocketInterfaceFloat' from 'bpy.types' (unknown location)
Lukas

My bad, wrong Blender version.


Admin panel

Does this website have some form of an admin panel/dashboard to change the background of your site or to add headers to your site? Something like what Wordpress has. I hate coding and I don't want to get into CSS files to change the way the website looks. If it doesn't, please consider adding one for us non-coders who hate coding.

ipfs.io and the other project websites (dist.ipfs.io, libp2p.io, etc) are just static websites. There's a wordpress plugin to help you create a static website from your wordpress installation (same for Drupal and others).
Please reopen if you have further questions.


checksum issue

I get different values for the checksum when computed independently on raw binary. Worth looking into.

Issue resolved, if user selects 24 word seed and puts exactly amount required for 24 word seed, you'd expect it to use raw entropy but doesn't seem to be the case. raw entropy worked to produced expected results


Add logger

This PR resolves Issue #23.

@arihantbansal Can you try implementing your logger in the GAN Tutorial notebook so we can merge it ?

@arihantbansal can you write the tests to complete the PR, Tensorboard can be integrated in a different PR

@arihantbansal can you write the tests to complete the PR, Tensorboard and Tutorial test can be integrated in a different PR

I'll try fix the callback logging and implement it in the tutorial by EOD.
What are the requirements for the tests?


firebase_auth error

I'm creating a blog app, while creating new user I got following error. Please somebody help me with this, it's kinda urgent.
I/flutter ( 1603): 'file:///C:/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.8.4+5/lib/src/firebase_auth.dart': Failed assertion: line 103 pos 12: 'email != null': is not true.
The above message displays in terminal when ever I wanted to create a new user in my flutter app.
flutter doctor -v (output)
[√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.17134.112], locale en-US)
• Flutter version 1.2.1 at C:\flutter
• Framework revision 8661d8aecd (9 weeks ago), 2019-02-14 19:19:53 -0800
• Engine revision 3757390fa4
• Dart version 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\Users\hp\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
• All Android licenses accepted.
[√] Android Studio (version 3.2)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 31.2.1
• Dart plugin version 181.5656
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
[√] VS Code, 64-bit edition (version 1.32.3)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 2.25.0
[√] Connected device (1 available)
• SM A730F • 52006211bea2a4ab • android-arm64 • Android 9 (API 28)
• No issues found!

It's going to be difficult to help without any code that shows how you're creating the user.
But from the error message, it looks the email address you're trying to create the user with isn't being sent for some reason.

@inzy47 was the issue resolved?

Hi @inzy47
for what I can see the issue is related to a FlutterFire plugin,
please open the issue in the dedicated github.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
thank you


Update built versions in publish

Thanks a lots for this great extended version of trello2gitlab !
Would it be possible to update the built version of the new code in the publish directory (personnaly interested in the linux-x64 executable) ?
Regards

Is it not possible for you to manually Build it on your system?

I have never handled C# projects, I don't know the requirements and the commands to build the executables...

OK, I'll give it a try.

This is a quick manual release of the Linux x64 version:
https://github.com/UweKeim/trello2gitlabextended/releases/download/trial/trello2gitlab-linux-x64.zip
Can you please give it a try whether this works for you?
I honestly only ran my version on Windows so issues might occur on Linux. Just give me a feedback and I'll try to fix it 😊
À bientôt 👋🏻

For now, I have only tested ./trello2gitlab  ../../options.json --associatewithtrello which gives me the following error:
$ ./trello2gitlab  ../../options.json --associatewithtrello
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at Trello2GitLab.ConsoleApp.Program.Main(String[] args)
   at Trello2GitLab.ConsoleApp.Program.<Main>(String[] args)
Abandon (core dumped)

But this is working fine with action added in the options.json file. Thanks a lot!
BTW, a few issues failed to be added a comment with the source trello card url, and the program exited, without any clear reason. The solution was to manually add the comment to the failing issues.
Unhandled exception. Trello2GitLab.Conversion.ApiException: 429 Too Many Requests {"message":{"error":"This endpoint has been requested too many times. Try again later."}}
   at Trello2GitLab.Conversion.GitLab.GitLabApi.Request[T](HttpMethod method, String endpoint, Nullable`1 userId, HttpContent content, Boolean projectBasedUrl)
   at Trello2GitLab.Conversion.GitLab.GitLabApi.Request[T](HttpMethod method, String endpoint, Nullable`1 userId, Object serializableContent, Boolean projectBasedUrl)
   at Trello2GitLab.Conversion.GitLab.GitLabApi.CommentIssue(Issue issue, NewIssueNote comment, Nullable`1 commentedBy)
   at Trello2GitLab.Conversion.Converter.associateIssueWithTrelloCard(Card card, Issue issue, Nullable`1 createdBy)
   at Trello2GitLab.Conversion.Converter.AssocitateWithTrello(IProgress`1 progress)
   at Trello2GitLab.ConsoleApp.Program.RunAssocitateWithTrello(ConverterOptions options)
   at Trello2GitLab.ConsoleApp.Program.Main(String[] args)
   at Trello2GitLab.ConsoleApp.Program.<Main>(String[] args)
Abandon (core dumped)

I've now added the latest binaries to the /publish folder again.


Missing English Language

[x] Add Service Alias in dropdown
[x] Add External Service in dropdown

Translations not found in Dev tool:

[ ] Main Stack page - translation not found: locale='en-us', key='stackSection.add.toggle'.

Missing Translation in VM console View:

Missing Translation in the landing page  when stack is created with docker-compse.yml

Version - master 5/15
Verified fixed


[Feature request] Update to the latest version of NPM

Idea
Hi,
it would be awesome if you could update NPM to the latest version by jleasage (2.10.4)
This project of yours is the only one that allows NPM to work with Crowdsec so flawlessy.
Thanks for your time and effort.

Had the wrong docker configuration, the latest image is already updated. Sorry for the inconvenience!


Add opportunity to disable parse mode

Afaic telegram bot API doesn't support "None" parse mode. Moreover, you can already "disable" parse mode by just setting the corresponding field of a request to None (or not enabling it in the first place).

Yeah, I also was not able to find None parse mode in the docs either, but the API itself turns off parsing mode with this value. But it may be it is unstable, though. You mean I should do something ike this:
use teloxide_core::requests::HasPayload;

let mut req = bot.something().payload_mut();
req.parse_mode = None;

? So it is no problem if I need to do it once, but if there are multiple times in one function, it seems to be redundant. So, maybe it would make sense to create method like "disable_parse_mode()" or if ParseMode matches None, skip the field? It will be helpful in case of multiple messages of different formattings sent by a bot.

By default, .parse_mode is set to None. If it isn't None, then you use the DefaultParseMode adaptor. Then you can try calling DefaultParseMode::inner to get the underlying bot from the adaptor and call methods on it as they'll be without .parse_mode. @WaffleLapkin, please correct me if I'm wrong somewhere.

Yeah, it works, but if I have two adaptors (DefaultParseMode and AutoSend), to turn off parse mode, I have to call inner 2 times like:
bot.inner().inner().something()

So, it is no problem, but I wish I could do it i a more elegant way :)

Well, you can write DefaultParseMode::inner(AutoSend::inner(bot)) to clearly show your intention.

@arsenron you can make an extension to turn off parse_mode:
trait DisableParseMode {
    fn disable_parse_mode(self) -> Self;
}

impl<R> DisableParseMode for R
where
    R: HasPayload,
    R::Payload: HasParseMode,
{
    fn disable_parse_mode(mut self) -> Self {
        *self.parse_mode_field() = None;
        self
    }

trait HasParseMode {
    fn parse_mode_field(&mut self) -> &mut Option<ParseMode>;
}

impl HasParseMode for SendMessage { ... }
// etc

But generally, I think that you shouldn't use DefaultParseMode if there are a lot of places where you need to disable parse_mode.

Ok, I will think about my implementation, sorry guys for wasting your time ;)


feat: allow to set clustering and partitioning options at table creation

I suggest a way to pass more options at table creation to specify table partitioning and clustering, as well as options that are not yet supported.
table = sqlalchemy.Table(
    "some_table",
    sqlalchemy.Column("id", sqlalchemy.Integer),
    sqlalchemy.Column("country", sqlalchemy.Text),
    sqlalchemy.Column("town", sqlalchemy.Text),
    sqlalchemy.Column("createdAt", sqlalchemy.DateTime),
    bigquery_expiration_timestamp=datetime.datetime.fromisoformat("2038-01-01T00:00:00+00:00"),
    bigquery_partition_expiration_days=30,
    bigquery_require_partition_filter=True,
    bigquery_default_rounding_mode="ROUND_HALF_EVEN",
    bigquery_clustering_fields=["country", "town"],
    bigquery_partitioning="DATE(createdAt)",
)

Which generates this DDL script:
CREATE TABLE `some_table` (
    `id` INT64,
    `country` STRING,
    `town` STRING,
    `createdAt` DATETIME
)
PARTITION BY DATE(createdAt)
CLUSTER BY country, town
OPTIONS(expiration_timestamp=TIMESTAMP '2038-01-01 00:00:00+00:00', partition_expiration_days=30, require_partition_filter=true, default_rounding_mode='ROUND_HALF_EVEN')

After reading the contribution guidelines, I realized and agreed that the design should have been discussed before submitting this change request.. Anyway, this proposal is quite straightforward and stick to the python way to write programming interface so I hope it could get your attention.

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #395  🦕

@nlenepveu,
Please could you update the system test also https://github.com/googleapis/python-bigquery-sqlalchemy/blob/8952f02c482f9143b0ec78f48d66e7c7a2e755f3/tests/system/test_sqlalchemy_bigquery.py#L594 to prepare this PR for review?
=================================== FAILURES ===================================
_______________________________ test_get_indexes _______________________________
Traceback (most recent call last):
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/runner.py", line 341, in from_call
    result: Optional[TResult] = func()
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/runner.py", line 262, in
    lambda: ihook(item=item, **kwds), when=when, reraise=reraise
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_hooks.py", line 493, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_manager.py", line 115, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_callers.py", line 152, in _multicall
    return outcome.get_result()
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_result.py", line 114, in get_result
    raise exc.with_traceback(exc.__traceback__)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_callers.py", line 77, in _multicall
    res = hook_impl.function(*args)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/runner.py", line 177, in pytest_runtest_call
    raise e
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/runner.py", line 169, in pytest_runtest_call
    item.runtest()
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/python.py", line 1792, in runtest
    self.ihook.pytest_pyfunc_call(pyfuncitem=self)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_hooks.py", line 493, in __call__
    return self._hookexec(self.name, self._hookimpls, kwargs, firstresult)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_manager.py", line 115, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_callers.py", line 113, in _multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/pluggy/_callers.py", line 77, in _multicall
    res = hook_impl.function(*args)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/.nox/system-3-8/lib/python3.8/site-packages/_pytest/python.py", line 194, in pytest_pyfunc_call
    result = testfunction(**testargs)
  File "/tmpfs/src/github/python-bigquery-sqlalchemy/tests/system/test_sqlalchemy_bigquery.py", line 597, in test_get_indexes
    assert len(indexes) == 2
AssertionError: assert 0 == 2
 +  where 0 = len([])

@parthea sure, I'll get this done.

@nlenepveu
I am reviewing this PR and will provide some feedback shortly.
I appreciate the hard work and effort.

We appreciate your hard work. There are a few things that I would like to see cleaned up/changed.

Thank you very much for your detailed comments.
Let's get this over with!

@chalmerlowe I made the changes you suggested. I think we now need to validate the name of the option for the partition expression to be able to move on!
Additionally, the test coverage report shows a drop on sqlalchemy_bigquery/base.py file which causes the test suite to fail. Could you give me some guidance on where efforts must be provided to keep this coverage at 100%?

@nlenepveu @snapiri
I am running the test suite and taking a look at the changes since I last saw this code.
(I've been out for the US Holidays).

@nlenepveu @snapiri I am running the test suite and taking a look at the changes since I last saw this code. (I've been out for the US Holidays).

Thanks! I just fixed the issues related to the code coverage. Could you please rerun the test suite?

@chalmerlowe We should be good

@chalmerlowe We should be good

@nlenepveu I am looking through the code again and will be focused on this for a portion of my day. I may have additional changes or questions. Just FYI.

I appreciate all your hard work.
I appreciate your time and your patience as we worked through the review process! Sorry it took so long. While I am the maintainer of this product, I am new to this responsibility and I spend most of my time maintaining python-bigquery so my familiarity with the ins and outs of this library is limited (I am still learning and this was quite the learning experience for me).

@chalmerlowe
Thank you for your message! I also really appreciate your help and guidance in improving the quality of my contribution! It was a pleasure to get this done with such a seasoned Python developer.

Thank you for this @nlenepveu 🙇🏻


randomness using normal distribution

hi,
tried searching for similar topic but couldn't find one.
I am wondering if its possible to use normal distribution for the randomness when doing each line up instead of simple randomness?
If anyone has worked out how to do this I would be happy to pay for it to be written into my code.
Thanks

Here's what I use.
class NormalVariateFantasyPointsStrategy(BaseFantasyPointsStrategy):
    def get_player_fantasy_points(self, player: Player) -> float:
        # std deviation stored in max_deviation scaled by 100
        if player.max_deviation is not None:
            return random.gauss(mu=player.fppg, sigma=player.max_deviation * 100.0)
        return 0

How do you add this to the code? I apologize but I am still learning python.

for your code i get
File
"/home/joe/.local/lib/python3.7/site-packages/pydfs_lineup_optimizer/lineup_optimizer.py",
line 433, in optimize
constraint.apply_for_iteration(solver, previous_lineup)
File
"/home/joe/.local/lib/python3.7/site-packages/pydfs_lineup_optimizer/rules.py",
line 65, in apply_for_iteration
fantasy_points = get_points(player)
TypeError: get_player_fantasy_points() missing 1 required positional
argument: 'player'
I have added your class into the necessary files
On Tue, Oct 4, 2022 at 11:59 PM Cmilne24 @.***> wrote:

How do you add this to the code? I apologize but I am still learning
python.
—
Reply to this email directly, view it on GitHub
https://github.com/DimaKudosh/pydfs-lineup-optimizer/issues/367#issuecomment-1267904304,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANBWO7QH2TNIMOUU6X77QKDWBT4IPANCNFSM5XMHXYOA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
ĵÖȘΈΦΗ

Hi @Denwen12 ,
Did you ever get this TypeError exception resolved? I am now running into the same issue.

I did get it working

What was your solution?
On Mar 13, 2023, at 21:46, Denwen12 @.***> wrote:

I did get it working
—
Reply to this email directly, view it on GitHubhttps://github.com/DimaKudosh/pydfs-lineup-optimizer/issues/367#issuecomment-1467306866, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3P3P7IXQLVIURFZHTKW6J3W37SYRANCNFSM5XMHXYOA.
You are receiving this because you commented.Message ID: @.***>

You can try it like this
class NormalVariateFantasyPointsStrategy(BaseFantasyPointsStrategy):     def get_player_fantasy_points(self, player: Player) -> float:         if player.min_deviation is not None:             return player.fppg         else:             mu = player.fppg             sigma = 15             return (random.gauss(mu, sigma))

Use it like this
You can change the sigma number to whatever you want I guess
optimizer.set_fantasy_points_strategy(NormalVariateFantasyPointsStrategy())


moving originals to another disk

I am moving my whole Photos library (Ventura) to another computer and I have my originals outside of the library in an Originals folder.
Can this tool be used to update the database, so I don't have to "find original" in every album ?
Thanks

Not yet though I am working on adding that feature. I've prototyped it (see RepairPhotosBookmarks) bit it's not mature and tested enough to recommend yet.  Unfortunately, due to the way Apple has implemented the ability to keep photos outside the library, moving them is non-trivial.  It's not just a matter of updating the path in the database (which is itself trivial) but new security-scoped bookmarks (that work with App Sandboxing) need to be created and only Photos can create these.

Thanks for the info.
I tried updating the DB, but I could see it's not sufficient, even on Ventura.
Really hope Apple would make our life easier, but it seems they don't want us to maintain our own Originals folder.
Looking forward to seeing this feature in your tool.


Update instructions about running subtensor node locally

This PR updates docs/running-subtensor-locally.md with new instructions how to run the node locally after Polkadot 1.0 update.

closese #318

Wait, I just noticed that this is targeting the "development" branch. Our current instructions to the community users say that they should switch to the "main" branch first. Should these changes be ported over the "main" branch also? Or are these changes meant only for internal "development" branch?

Made a PR to fix the command:

#324


[Inquiry] FPU issue

I am using cortex m4 (stm32f303). I am trying to use FPU in it but every time it stuck in hard fault handler I even called vPORT_ENABLE_FPU() in the task but it does not helped. After that also used portTASK_USES_FLOATING_POINT(); but got nothing always stuck in hardfault handler if you float.
Thanks in advance

Grateful if you can post your question into this thread in case it is the same issue.  Please also note which compiler you are using, including the compilers version number https://forums.freertos.org/t/intermittent-cm4-fault-bus-fault-in-floating-point-app/10090


fix($compile): support class directives on SVG elements

It's a pretty trivial change. @Narretz want to review this one?
Closes #10736

@petebacondarwin you should make the call on whether we care to fix this or not, Narretz assigned for now

LGTM.

okay, will land since it's such a tiny amount of code and nothing could possibly go wrong


Free options to deploy

Hi!
What if i want to deploy parse-server on my on server - not with heroku, azure or aws.
Which options would I have to do so?
thanks!

The instructions for running the server on localhost will also work for deploying to your own server, you can just skip the ngrok step.


Separate syntax for declaration and assignments

The language has always used = for both declaring and assigning to variables. IMO, this introduces a risk of misspelling variable names in assignments.
cd = 4
if condition
  cp = 6 # uh oh, dyslexia time
end

Typos are often hard to spot yet easy to make. As a straightforward solution, I think we should have separate syntax for declarations and assignments. A few examples for what the declaration syntax could be:

variable_name := value (basically syntax stolen from Pascal and Go, syntax only needs operator with symbols)
var/let variable_name = value (syntax seen in JavaScript, might have issues with code already using var as a variable name)
Type variable_name = value (syntax seen in C-like languages, bad because verbose and cannot use uninitialized)

This should still work for the sake of simplicity and readability:
if condition
  x := 1
end

puts x # x : (Int32 | Nil)

I think it's a little too late in the language's lifecycle to change this, no matter people's opinion.
I'll close this. I'm sure we'll see languages which take some of crystal's ideas and iterate on others in the future :)

To be honest, I agree. A tool that converts existing code wouldn't be that hard but the community probably is too used to using = for everything at this point.
FWIW, we could consider having the compiler warn the programmer for unused/dead/useless assignments.

FWIW, we could consider having the compiler warn the programmer for unused/dead/useless assignments.

That's already ameba's job.
I don't think it belongs in the compiler because variables might just be unused because the code that uses them is excluded by some macro configuration. Also, this kind of error should be easily spotted in unit tests.


TransitioningContentControl Support for MVVM

What steps will reproduce this issue?
I have an application that uses Caliburn.Micro and MahApps, I am using a TransitioningContentControl in my ShellView
<controls:TransitioningContentControl Grid.Row="0" Grid.Column="1" Content="{Binding ActiveItem}" RestartTransitionOnContentChange="True" />
I am setting the Content to the ActiveItem property of the ShellViewModel, which gets set when the ViewModel is activated
        protected override void OnActivate()         {             this._eventAggregator.Subscribe(this);             this.ActivateItem(this.UpdateViewModel.Value);             base.OnActivate();         }
UpdateViewModel is a property of the ViewModel
        [Import(typeof(UpdateViewModel))]         public Lazy<IScreen> UpdateViewModel { get; set; }
Expected outcome
What is expected is that the View content is loaded in the TransitioningContentControl, however all that gets displayed is the fully qualified type name of the ViewModel
--
Environment

MahApps.Metro v<IP_ADDRESS>
Windows 10
Visual Studio 2015
.NET Framework 4.6.1

@stevensn99 Do you have a `ContentTemplate? for your ViewModel?

The ViewModel is a class that inherits from Screen (Caliburn), the View is a UserControl.  Caliburn wires up the DataContext of the View to the ViewModel, why would my ViewModel have a ContentTemplate?

Looking at the source for the TransitioningContentControl the following line sets the content of currentContentPresentationSite
this.currentContentPresentationSite.Content = newContent;
If setting the Content to a ViewModel then i feel you would need to locate the View for that ViewModel using something like
ViewLocator.LocateForModel( newContent, null, null)
because newContent will be the ViewModel, for example:
public class MyViewModel : Screen, IMyViewModel  {     ... }
and the the View would be the MyView.xaml UserControl
I may be completely misunderstanding this control, or even how to use the control with MVVM, if so then please accept my apologies but i cant see how I can use this control without extending the functionality and i cant do that since StartTransition is private

I have no problems with the TransitioningContentControl. It works exactly like the standard control.
Newest caliburn.micro version + newest mahapps.metro version.
In ShellView.xaml:
 <Controls:TransitioningContentControl x:Name="ActiveItem" RestartTransitionOnContentChange="True" />
And in my ShellViewModel I invoke
  ChangeActiveItem(new MyViewModel(), true);
On a button click I invoke
ChangeActiveItem(new TestViewModel(), true);
and the content changes with transition.
Is your UpdateViewModel  really instantiated?

@MoiraG I am using Caliburn.Micro v3.0.1 and MahApps v1.2.4
Yes my UpdateViewModel does get instantiated i have put a break point on the constructor to verify and the breakpoint gets hit.  My UpdateViewModel is injected in my ShellViewModel as below since I am also using MEF as the IoC container.
        [Import(typeof(UpdateViewModel))]         public Lazy<IScreen> UpdateViewModel { get; set; }
I was using ActivateItem but have tried your suggestion as below:
            this.ChangeActiveItem(this.UpdateViewModel.Value, true);
All it displays is the fully qualified typename of the ViewModel as per the screen grab below

The code is hosted on github in a private repository that i can share if it would be easier to take a look directly

Maybe you havn't followed the view resolution conventions from caliburn.micro?
The folder structure respectively the namespace and the naming is important.
Do you have a usercontrol with the name UpdateView in the namespace Fusion.Windows.Ui.Updater.Views.UpdateView?
I will have a look on you repository but I can't make it tonight.
Wait a minute. I will give you a sample application. Maybe it helps.

@MoiraG Yes I have a Views folder with an UpdateView.xaml and a ViewModels folder with the UpdateViewModel as per the Caliburn conventions

here is a very small sample, which works for me
TestSample.zip

The UpdateView.xaml is:
<UserControl x:Class="Fusion.Windows.Ui.Updater.Views.UpdateView"              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              mc:Ignorable="d"              d:DesignHeight="300" d:DesignWidth="300">     <Grid>         <TextBlock Text="Hello World"></TextBlock>     </Grid> </UserControl>
and the UpdateView.xaml.cs is:
`
///
///     Interaction logic for UpdateView.xaml
///
public partial class UpdateView : UserControl
{
#region Constructors and Destructors
    /// <summary>
    /// Initializes a new instance of the <see cref="UpdateView"/> class.
    /// </summary>
    public UpdateView()
    {
        this.InitializeComponent();
    }

    #endregion
}

`

@MoiraG So i noticed that the only other thing that was different in the above was that I was using a {Binding ActiveItem}, I changed mine to use x:Name="ActiveItem" and that did the trick and the view loaded correctly.
I understand that Caliburn does the binding using x:Name but shouldn't that be the same whichever way you do it?

I don't know how caliburn.micro handles the " x:Name="ActiveItem". The problem with
Content="{Binding ActiveItem}"` is, that the ContentControl doesn't knwo how to render the viewmodel behind ActiveItem.
If you create a datatemplate in your ressources it works:
<Window.Resources>     <DataTemplate DataType="{x:Type viewModels:TestViewModel }">         <views:TestView></views:TestView>     </DataTemplate> </Window.Resources>
If you are interested in how caliburn.micro handles the x:Name on contentcontrol you should open an issue there, or study the code from caliburn.micro :)
@punker76 I think the issue should be closed. It's not a problem with mahapps.


chore(master): release 2.0.1

:robot: I have created a release beep boop
2.0.1 (2024-04-26)
Miscellaneous Chores

release 2.0.1 (7928da9)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/keq-request/keq-url/releases/tag/v2.0.1 :sunflower:


hackathon-LovishDhingra-L0_L1_L2_L3 - added forte connector with  request response authorize refund

@SanchithHegde
@vspecky
Type of Change

[ ] Bugfix
[ ] New feature
[ ] Enhancement
[ ] Refactoring
[ ] Dependency updates

Description

Additional Changes

[ ] This PR modifies the database schema
[ ] This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Checklist

[ ] I formatted the code cargo +nightly fmt --all
[ ] I addressed lints thrown by cargo clippy
[ ] I reviewed submitted code
[ ] I added unit tests for my changes where possible
[ ] I added a CHANGELOG entry if applicable

Closing this PR as invalid.


#632: Indicate Rust or (rust) for rust_version segment only if ic…

…on is unavailable
Hi @bhilburn, please let me know what you think.

Thanks, @chhschou! In looking at the code, here, you're right - this needs to get fixed.
Your PR looks good, but in looking at the code, it looks like there is even more we could fix. So, check this out:

awesome-patched: You are fixing this with with (rust) here
awesome-fontconfig: Mapped to E6A8 here
nerdfont-complete: Mapped to E7A8 here
powerline-patched: You fix this with Rust here

I have a couple of questions:

Is there a reason you used (rust) in one place and Rust in the other?
For the most part, awesome-patched and awesome-fontconfig can use the same codepoints. Are we sure that these need to be different?
So, I pulled up the awesome-fontconfig font map, and guess what? E6A8 isn't anywhere in there. Check it out -- can you comment, @gabrielelana?
It's also strange to me that the Nerdfonts codepoint is only just slightly different from the Awesome map, E6A8 vs E7A8. -- can you comment, @ryanoasis?

@bhilburn I have a pretty basic understanding of awesome-patched and powerline-patched. I used both (rust) and Rust following the patterns surrounding each change. If there is a preference for one over the other I'm happy to comply. I did ask a question in #632 but it wasn't answered so I thought the choice wasn't important. Personally, I like (rust) better, the parentheses helps me see that the icon is unavailable.

@bhilburn

So, I pulled up the awesome-fontconfig font map, and guess what? E6A8 isn't anywhere in there. Check it out -- can you comment, @gabrielelana?

Because the rust icon is not part of the fontawesome icon font but is part of devicons icon font and in fact you can find the font code point in the devicon font map

For the most part, awesome-patched and awesome-fontconfig can use the same codepoints. Are we sure that these need to be different?

for awesome-fontconfig always use the variables defined in the font map, so use "\u$CODEPOINT_OF_DEVICONS_RUST" instead of $'\uE6A8' if you do that then I can update the icon fonts, possibly shift icons around to avoid clashes and still don't break anything for anyone

@bhilburn

It's also strange to me that the Nerdfonts codepoint is only just slightly different from the Awesome map, E6A8 vs E7A8

As @gabrielelana has said that glyph is from devicons not font awesome. Nerd Fonts has shifted the codepoints range due to conflicts with other glyph fonts: E600-E6C5 → E700-E7C5.
It occurs to me the shifting isn't clear on the readme of Nerd Fonts currently :disappointed:
Also we somewhat recently added variables for mapping the codepoints as well, e.g. devicons map though honestly I am not sure how P9k would incorporate them.


steam api auth

i read your explanation about BeginAuthSessionViaCredentials its good but i dont understand
mod = ses.get("https://api.steampowered.com/IAuthenticationService/GetPasswordRSAPublicKey/v1/?account_name=steamok1089937")
k1 = mod.json()["response"]["publickey_mod"]
k2 =  mod.json()["response"]["publickey_exp"]
t_2 = mod.json()["response"]["timestamp"]

print(k1)
print(mod.text)
t_1 = int(time())
public_key = rsa.PublicKey(int(k1, 16), int(k2, 2))

# encrypted_password = quote(b64encode(rsa.encrypt(password.encode(),rsa.PublicKey(int(k1,16), int(k2,2)))))
encrypted_pass = b64encode(rsa.encrypt(password.encode("utf-8"), public_key)).decode("utf-8")

i used this script to get encrypted pass
now

added here but i dont know what to add in gurd data and language and device details
when i run only with accountname and encryped pass it gives me
{"response":{"interval":5,"extended_error_message":""}}
every single time
what to do can you help me
is somthing wrong in encryption?

Wrong place to ask, this is the official API, we do the internal API

but you were telling this
https://stackoverflow.com/questions/74088647/how-to-get-steam-web-session-cookie-programatically


Can't see the emojis with the "native" style.

Hello,
I'm unable to see the emojis if I let the native style in the settings. Instead, I only see squares. All the other styles work fine.
I'm on Linux Mint 17.3, currently.

Nice catch! I don't have Linux, but will try to reproduce and fix the issue 😬

A quick vm should do the trick. ;D

Just a short update: I did not have found the time to work on that issue, but it is still on my radar!

No problemo. Thank you to still think about it. :D
Btw, I think this might be due to the font lacking in the distro. Could it be?

Oh and also a quick update: I changed my distro to manjaro-bspwm (which is based on archlinux) and it's still doing it.
I know one of my classmates doesn't have the issue with manjaro-kde.

Still doing it. :/ Good news, I think I might have a bit of time to sort it out, in 2 weeks. ;D

That would be really awesome! If you need any help on this, just ping me. ✌🏼
Unfortunately, I had not the time yet to properly setup a VM for debugging. I haven't forgotten about this :)

Yeah I have zip zero emoji support on Windows 8 (and for 7 and Linux users as well). All I got is the


Transaction generator: transactions with multiple inputs

Currently transaction generator is able to produce transactions with one single input only. We have to add configurable ability to generate transactions with multiple inputs.

https://github.com/input-output-hk/cardano-node/pull/245


Keep mCNVs when removing private sites during SubsetVcfBySamplesList

Updates
Previously, SubsetVcfBySamplesList applied --min-ac 1 during bcftools view to remove sites that were private to samples that got removed from the VCF during the task. But that removed all mCNVs, which have ./. GT for all samples. This update instead computes the site's AC and then removes non-CNV type sites with AC less than 1.
Caveat: Sites of type CNV that are not variant in any remaining samples will not be removed from the VCF by this method. In most cases, that is likely to be fine as mCNV sites are common in the population.
Note that any cohorts processed through FilterBatchSamples while the previous version was in place should be fine, because no CNV sites are present at that point in the pipeline.
Testing

Womtool validation of all WDLs and JSONs
Ran SubsetVcfBySamples WDL on ref panel successfully and verified that site counts matched previous run + the number of CNVs retained

This looks like it was incorporated in PR #484 ?

Yes, I had opened this PR before realizing that these changes were also needed on that branch. I'll close it now since I merged #484


Cant run puppetier in heroku

Hi,
I'm reaching out to you, since you probably know more about it than support :)
I have an app that has been running for more than a year and worked great.
Lately, my deplyments failed with:
-----> Installing dependencies
       Installing node modules
ERROR: Build terminated for reason: Build Timeout Expired
-----> Timed out running buildpack Node.js
 !     Push failed

I reached out to heroku support and they told me to add the following environment flag:
PUPPETEER_SKIP_DOWNLOAD=true

They said that chrome is taking too long to download.
Did it in a test environment (lucky me) and it fails the heroku-postbuild action detailed in this repo readme:
remote:        ><EMAIL_ADDRESS>heroku-postbuild
remote:        > mkdir ./.cache && mv /app/.cache/puppeteer ./.cache
remote:
remote: mv: cannot stat '/app/.cache/puppeteer': No such file or directory

Of course if I remove the postbuild - than the setup is complete but the puppetier functionality doesn't work.
I hope you can help me, looking forward to hearing from you

same issue

Eventually resolved it by:

switching to puppeteer-core
installing this pack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku-community/chrome-for-testing.tgz in the following order:

Removed the heroku post-bulid sript from the package.json
Set executable path like this:

  const puppeteer = await import("puppeteer-core")
  const browser = await puppeteer.launch({
    headless: true,
    executablePath: "/app/.chrome-for-testing/chrome-linux64/chrome",
    args: ["--no-sandbox", "--disable-setuid-sandbox"],
  })

Let me know if you think this is vialble, and maybe update the readme?

We also ran into this issue and the above solution worked for us, but we use Grover to use puppeteer so had to adjust step 4 to;
# config/initializers/grover.rb

Grover.configure do |config|
  if Rails.env.in?(['staging', 'production'])
    config.options = {
      executable_path: '/app/.chrome-for-testing/chrome-linux64/chrome',
      launch_args: ['--no-sandbox', '--disable-setuid-sandbox'],
    }
  end
end

We also ended up moving/keeping puppeteer in our devDependencies in package.json so that it downloads chrome for us since the buildpack won't be doing that for us locally


Fix SemVer bugs

Add support for pre-release version and build metadata to SemVer and SemVerMatch.

Code looks good, but had the same question as @infotexture on our development builds. Is the use of + in our builds a standard use as in the code test 1.0.0-beta+exp.sha.5114f85 ?


Support upload/process/play videos

I know this is a ambitious feature, but I think refile was also.. Would be great refile provide a way to upload/process/play videos using same principles of image upload.. Instead "Minimagick" use "streamio-ffmpeg" and provide a helper to play it, maybe using "clappr".

This is very ambitious, and probably outside the scope of an already impressive gem. That said I have just this exact need. Would make an excellent gem to accompany refile

+1 Can definitely see use cases for this.
Currently Refile uses a Sinatra app to stream the files. Perhaps if the file is a video, a different Sinatra endpoint could be used to transcode and stream?

I would prefer for this kind of thing to be handled by separate gems. The image processing is going to be split out into a separate gem too.


Override version selection

Would be nice to automatically select the latest version, so (together with #25) we can do a fully unattended upgrade. Something like
npm-windows-upgrade --quiet --version:latest

Or something. Currently doesn't work, as there's no version, or an alias for a version, called "latest".

Hey @thany, thanks for the suggestion! That being said, this already works :santa:. The only trouble is that npm's latest still points to the latest npm@2, whereas I keep recommending to people that npm@3 is amazing for anyone using Windows.
I'll close this in the meantime, but feel free to reopen if I misunderstood you!


Codium availability ?

Thanks for the plug-in !
Why is it not available in Codium extensions but only in VS Code ?

It is possible by doing:
wget https://github.com/Venthe/vscode-fauxpilot/releases/download/1.0.0/fauxpilot-1.0.0.vsix
codium --install-extension fauxpilot-1.0.0.vsix

Frankly, because no one has shown any interest :)
I'll investigate, and if it's as easy as you say, should be up today'ish

It's now available :) https://open-vsx.org/extension/venthe/fauxpilot


docs(samples): Update README.md

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[ ] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

closed due to CLA issue


Remove unnecessary SKImage wrappers in ImmutableBitmap

What does the pull request do?
Currently, in ImmutableBitmap's implementation, there is an unnecessary conversion from SKBitmap to SKImage.
Most of the properties and data can be directly extracted from SKImage.

By moving to SKBitmap all bitmaps are always CPU bound

I see, so this is the reason we need to keep the instance of the SKImage?

Possibly we can have two different implementations, one SKBitmap backend and another SKimage backed. Updating all the usage.
But does it have any benefit of avoiding SKImage? I don’t expect it copy all the memory, unless I am wrong.

SKImage internally references the same bitmap data, IIRC.

SKImage internally references the same bitmap data, IIRC.

So it is safe to remove those fields?

@laolarou726,
Please read the following Contributor License Agreement (CLA). If you agree with the CLA, please reply with the following:
@cla-avalonia agree

Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement ( “Agreement” ) is agreed to by the party signing below ( “You” ),
and conveys certain license rights to the AvaloniaUI OÜ ( “AvaloniaUI OÜ” ) for Your contributions to
AvaloniaUI OÜ open source projects. This Agreement is effective as of the latest signature date below.
1. Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to AvaloniaUI OÜ under this Agreement.
“Project” means any of the projects owned or managed by AvaloniaUI OÜ and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
3. Originality of Work.  You represent that each of Your Submissions is entirely Your
original work. Should You wish to Submit materials that are not Your original work,
You may Submit them separately to the Project if You (a) retain all copyright and
license information that was in the materials as you received them, (b) in the
description accompanying your Submission, include the phrase "Submission
containing materials of a third party:" followed by the names of the third party and any
licenses or other restrictions of which You are aware, and (c) follow any other
instructions in the Project's written guidelines concerning Submissions.
4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
5. Licenses.
a. Copyright License. You grant AvaloniaUI OÜ, and those who receive the Submission directly
or indirectly from AvaloniaUI OÜ, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable
license in the Submission to reproduce, prepare derivative works of, publicly display, publicly perform,
and distribute the Submission and such derivative works, and to sublicense any or all of the foregoing
rights to third parties.
b. Patent License. You grant AvaloniaUI OÜ, and those who receive the Submission directly or
indirectly from AvaloniaUI OÜ, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license
under Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
c. Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.
6. Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3 ). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6 , THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
7. Notice to AvaloniaUI OÜ. You agree to notify AvaloniaUI OÜ in writing of any facts or
circumstances of which You later become aware that would make Your representations in this
Agreement inaccurate in any respect.
8. Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
9. Governing Law/Jurisdiction. This Agreement is governed by the laws of the Republic of Estonia, and
the parties consent to exclusive jurisdiction and venue in the courts sitting in Talinn,
Estonia. The parties waive all defenses of lack of personal jurisdiction and forum non-conveniens.
10. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by AvaloniaUI OÜ.
AvaloniaUI OÜ dedicates this Contribution License Agreement to the public domain according to the Creative Commons CC0 1.

@cla-avalonia agree

@cla-avalonia agree

@ laolarou726 I'm so sorry for the delay. There is no benefit in using SKBitmap instead of SKImage. This change even prevents smart caching of the bitmap data. Skia potentially uploads the bitmap data to the GPU memory and discards the CPU-bound memory once done. This only works with SKImage. The current implementation wraps the SKBitmap inside an SKImage which does not introduce extra allocation because the underlying memory is shared.
For mentioned reasons, we will close this PR
Thank you for your contribution.


The sample app no works

Hi, I'm trying to run the example app, but I do not want to play the streaming on the console, export the access-key-id and the secret-access-key, but this is the result, I appreciate your help
[INFO ][2018-07-06 04:41:39] Initializing curl.
[INFO ][2018-07-06 04:41:39]
createKinesisVideoClient(): Creating Kinesis Video Client
[INFO ][2018-07-06 04:41:39]
heapInitialize(): Initializing native heap with limit size 536870912, spill ratio 0% and flags 0x00000001
[INFO ][2018-07-06 04:41:39]
heapInitialize(): Creating AIV heap.
[INFO ][2018-07-06 04:41:39]
heapInitialize(): Heap is initialized OK
[INFO ][2018-07-06 04:41:39] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[INFO ][2018-07-06 04:41:39] New credentials expiration is<PHONE_NUMBER>
[DEBUG][2018-07-06 04:41:39] createDeviceHandler invoked
[INFO ][2018-07-06 04:41:39]
createDeviceResultEvent(): Create device result event.
[DEBUG][2018-07-06 04:41:39] clientReadyHandler invoked
[DEBUG][2018-07-06 04:41:39] Awaiting for the producer to become ready...
[DEBUG][2018-07-06 04:41:39] Kinesis Video producer is Ready.
[DEBUG][2018-07-06 04:41:39] Client is ready
[INFO ][2018-07-06 04:41:39] Creating Kinesis Video Stream test
[INFO ][2018-07-06 04:41:39]
createKinesisVideoStream(): Creating Kinesis Video Stream.
[DEBUG][2018-07-06 04:41:39] describeStreamHandler invoked
[INFO ][2018-07-06 04:41:39] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[DEBUG][2018-07-06 04:41:39] Awaiting for the stream to become ready...
[ERROR][2018-07-06 04:41:44] curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Timeout was reached: Resolving timed out after 5515 milliseconds
[WARN ][2018-07-06 04:41:44] HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJSP6ZNIDKJGZF3MQ/20180706/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=3cacc5ff783359a473d54f490bd433bcca7706e9dfd26a14d19145cdd6ff0211
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180706T044139Z
[DEBUG][2018-07-06 04:41:44] describeStream response:
[INFO ][2018-07-06 04:41:44] Describe stream did not find the stream test in Kinesis Video (stream will be created)
[INFO ][2018-07-06 04:41:44]
describeStreamResultEvent(): Describe stream result event.
[DEBUG][2018-07-06 04:41:44] describeStreamHandler invoked
[INFO ][2018-07-06 04:41:44] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[ERROR][2018-07-06 04:41:50] curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Timeout was reached: Resolving timed out after 5515 milliseconds
[WARN ][2018-07-06 04:41:50] HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJSP6ZNIDKJGZF3MQ/20180706/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=6ea22e81cff0ea1d6c33a305087b1ffe678634e21ee5c121c8e5b6d6cccc5e56
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180706T044144Z
[DEBUG][2018-07-06 04:41:50] describeStream response:
[INFO ][2018-07-06 04:41:50] Describe stream did not find the stream test in Kinesis Video (stream will be created)
[INFO ][2018-07-06 04:41:50]
describeStreamResultEvent(): Describe stream result event.
[DEBUG][2018-07-06 04:41:50] describeStreamHandler invoked
[INFO ][2018-07-06 04:41:50] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[ERROR][2018-07-06 04:41:56] curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Timeout was reached: Resolving timed out after 5514 milliseconds
[WARN ][2018-07-06 04:41:56] HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJSP6ZNIDKJGZF3MQ/20180706/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=e4dad4ebaf5e71eb454316acb33901c14a2078257376c2a9ac9e3f7711294e1b
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180706T044150Z
[DEBUG][2018-07-06 04:41:56] describeStream response:
[INFO ][2018-07-06 04:41:56] Describe stream did not find the stream test in Kinesis Video (stream will be created)
[INFO ][2018-07-06 04:41:56]
describeStreamResultEvent(): Describe stream result event.
[DEBUG][2018-07-06 04:41:56] describeStreamHandler invoked
[INFO ][2018-07-06 04:41:57] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[ERROR][2018-07-06 04:42:02] curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Timeout was reached: Resolving timed out after 5515 milliseconds
[WARN ][2018-07-06 04:42:02] HTTP Error 0: Response:
Request URL: https://kinesisvideo.us-west-2.amazonaws.com/describeStream
Request Headers:
Authorization: AWS4-HMAC-SHA256 Credential=AKIAJSP6ZNIDKJGZF3MQ/20180706/us-west-2/kinesisvideo/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=07274c3d2b8b0e69f3943e74f276d75d7d269a636ae1d71d0ec07270bb78d12b
content-type: application/json
host: kinesisvideo.us-west-2.amazonaws.com
X-Amz-Date: 20180706T044157Z
[DEBUG][2018-07-06 04:42:02] describeStream response:
[INFO ][2018-07-06 04:42:02] Describe stream did not find the stream test in Kinesis Video (stream will be created)
[INFO ][2018-07-06 04:42:02]
describeStreamResultEvent(): Describe stream result event.
[DEBUG][2018-07-06 04:42:02] describeStreamHandler invoked
[INFO ][2018-07-06 04:42:04] Refreshing credentials. Force refreshing: 0 Now time is:<PHONE_NUMBER> Expiration: 0
[ERROR][2018-07-06 04:42:09] Failed to create Kinesis Video Stream - timed out.
terminate called after throwing an instance of 'std::runtime_error'
what():  Failed to create Kinesis Video Stream - timed out.
Abortado

Please check network connectivity is working and certificates are installed as per the documentation ( https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/issues/79 ) .

[ERROR][2018-07-06 04:42:02] curl perform failed for url https://kinesisvideo.us-west-2.amazonaws.com/describeStream with result Timeout was reached: Resolving timed out after 5515 milliseconds

Could you pl tell us which environment you have been running from -  Ubuntu, Raspberry PI, MacOS ?

Also note proxy can affect network connectivity for the application.

I test in raspberry pi 3 and elementary OS loki (ubuntu 16.04)

@jdavidguerrero  Thanks for the details.  Please check the connectivity exists for all the network interfaces - more details can be found here :
( https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/issues/62  )

already check the connections just leave the wlan and as for the certificates try with the command
curl https://kinesisvideo.us-west-2.amazonaws.com --verbose and the result is:

Rebuilt URL to: https://kinesisvideo.us-west-2.amazonaws.com/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to kinesisvideo.us-west-2.amazonaws.com (<IP_ADDRESS>) port 443 (#0)
ALPN, offering h2
ALPN, offering http/1.1
Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
successfully set certificate verify locations:
CAfile: /etc/ssl/cert.pem
CApath: /etc/ssl/certs
TLSv1.2 (OUT), TLS header, Certificate Status (22):
TLSv1.2 (OUT), TLS handshake, Client hello (1):
TLSv1.2 (IN), TLS handshake, Server hello (2):
TLSv1.2 (IN), TLS handshake, Certificate (11):
TLSv1.2 (IN), TLS handshake, Server key exchange (12):
TLSv1.2 (IN), TLS handshake, Server finished (14):
TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
TLSv1.2 (OUT), TLS change cipher, Client hello (1):
TLSv1.2 (OUT), TLS handshake, Finished (20):
TLSv1.2 (IN), TLS change cipher, Client hello (1):
TLSv1.2 (IN), TLS handshake, Finished (20):
SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
ALPN, server did not agree to a protocol
Server certificate:
subject: CN=kinesisvideo.us-west-2.amazonaws.com
start date: Nov 21 00:00:00 2017 GMT
expire date: Nov 21 12:00:00 2018 GMT
subjectAltName: host "kinesisvideo.us-west-2.amazonaws.com" matched cert's "kinesisvideo.us-west-2.amazonaws.com"
issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
SSL certificate verify ok.

GET / HTTP/1.1
Host: kinesisvideo.us-west-2.amazonaws.com
User-Agent: curl/7.52.1
Accept: /

< HTTP/1.1 403 Forbidden
< x-amzn-RequestId: 6b0ca4c6-8144-11e8-a1b6-951e27640d49
< Content-Length: 127
< Date: Fri, 06 Jul 2018 17:45:48 GMT
<

Missing Authentication Token

Curl_http_done: called premature == 0
Connection #0 to host kinesisvideo.us-west-2.amazonaws.com left intact

Hi @jdavidguerrero
Would you please check the curl from this SDK downloads directory?
/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin/curl

hi @unicornss look the content of directory:
jdavidguerrero@CEO-GPROG:~/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin(master)$ ls
aclocal       automake       autoupdate   envsubst      gdbus-codegen  gio-querymodules        glib-mkenums            gst-discoverer-1.0  gst-typefind-1.0  libtool     msgcmp   msgfilter  msgunfmt     pcregrep         yacc
aclocal-1.15  automake-1.15  bison        flex          gettext        glib-compile-resources  gobject-query           gst-inspect-1.0     gtester           libtoolize  msgcomm  msgfmt     msguniq      pcretest         yasm
autoconf      autopoint      c_rehash     flex++        gettextize     glib-compile-schemas    gresource               gst-launch-1.0      gtester-report    m4          msgconv  msggrep    ngettext     recode-sr-latin  ytasm
autoheader    autoreconf     curl         gapplication  gettext.sh     glib-genmarshal         gsettings               gst-play-1.0        iconv             msgattrib   msgen    msginit    openssl      vsyasm
autom4te      autoscan       curl-config  gdbus         gio            glib-gettextize         gst-device-monitor-1.0  gst-stats-1.0       ifnames           msgcat      msgexec  msgmerge   pcre-config  xgettext

Hi @jdavidguerrero  Thanks for the folder contents.
I was referring to your earlier message:

already check the connections just leave the wlan and as for the certificates try with the command
curl https://kinesisvideo.us-west-2.amazonaws.com --verbose and the result is:

In that case the curl https://kinesisvideo.us-west-2.amazonaws.com could have been using the system installed curl rather than the one in the ~/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin/curl . Wanted to check if there is any specific certificate location unique to elementary OS loki (ubuntu 16.04) causing this. I
Just to be sure can you also please verify the network connectivity exists in the wired network as well ? If there is no connectivity to AWS through wired network then that could result in Time out if the wired network interface gets to send traffic.

closing due to inactivity, feel free to re-open.