Opam package

Wow this is really cool!.. and now I want to use it in anger on all the lock-free things :)

Thanks for much for opamming it up!
Do let me know how you get on with dscheck, there's still some things that probably need to be added (e.g to deal with fairness).


How to customize the category/tag pages generated by jekyll-archive?

[x] This is a question about using the theme.
[ ] I believe this to be a bug with the theme --- not Jekyll, GitHub Pages or one of the bundled plugins.
[ ] This is a feature request.
[x] I have updated all gems with bundle update.
[x] I have tested locally with bundle exec jekyll build.

Environment informations

**Minimal Mistakes version:4.2.1
**jekyll gem version:3.4.0
**Operating system:Mac OS 10.11.6

Expected behavior
I'd like to add an overlay header to the pages generated by the jekyll-archive plugin. My approach has been to override the theme's archive-taxonomy.html layout and add the relevant overlay image config to the front matter.  It's not working for me.
A whack with a clue stick would be appreciated.
Steps to reproduce the behavior
jekyll-archive config
I have jekyll-archive installed and it is generating a page for each tag and category as expected, just not with the header image I'd like. Here's the relevant section of _config.yml
category_archive:
  type: jekyll-archives
  path: /categories/
tag_archive:
  type: jekyll-archives
  path: /tags/
jekyll-archives:
  enabled:
    - year
    - categories
    - tags
  layouts:
    category: archive-taxonomy
    tag: archive-taxonomy
  permalinks:
    year: /year
    category: /categories/:name/
    tag: /tags/:name/

theme layout override
To override the theme, made a local copy of archive-taxonomy.html, and added header: info to the layout's front matter.
---
layout: default
author_profile: false

header:
       overlay_image: "/assets/images/brick-banner-3.png"
       overlay_filter: rgba(0, 0, 0, 0.15)
       cta_label: "Book Now"
       cta_url: "/booknow"
---

That layout doesn't have the Liquid code for headers. Take a look at the standard archive.html to see what code you'd need to add to the taxonomy for then to work.
The YAML you're using is fine it just needs the layout code to make it show up.

OK. I did that, pulling in
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
  {% include page__hero.html %}
{% elsif page.header.video.id and page.header.video.provider %}
  {% include page__hero_video.html %}
{% endif %}

No go. In doing some caveman debugging, it looks like thepage object doesn't have any header info in it. The generated category/tag pages have the following info for page:
page: {{ page }}
page: {"layout"=>"archive-taxonomy", "posts"=>[#], "type"=>"tag", "title"=>"coupons", "date"=>nil, "name"=>"index", "path"=>"tags/coupons/index.html", "url"=>"/tags/coupons/"}

If I explicitly ask for page.header.overlay_image, I get nothing back in the generated page.

Think that's a causality of using Jekyll Archives. It has access to certain objects, page likely isn't one of them, at least not in the way you're trying to access it. I'm sure there's a way to do it but you might need to get creative.
I'd inquire with that plugin as I don't really know much more about it other than what they've documented here.

Thanks! I think you're right. Digging through the plugin code, it restricts Liquid to a fixed set of attributes on page, and doesn't pay any attention to extra data in the layout front matter.
That's fine. I spent a few hours learning how plugins work and how to debug Ruby. So, +1 for that! :-)

I solved this finally, by copying the relevant layout code from page__hero.html into a custom layout file for jekyll-archive to use. The generated category/tag pages match the styling of the rest of my site.
Thanks very much for the help. :-)

Captain's Log: Supplemental
After closing this issue, I read somewhere else that since Jekyll 3, layout front matter is no longer made accessible to Liquid via the page variable, but through layout.
So, I tried the approach of customizing archive.html to access the header front matter info through layout.header in the Liquid. Changing the jekyll-archive config to use my customized layout, that approach worked fine. I had to pull in sidebar.html and tweak it to access sidebar definitions through layout also.
Ultimately, it was a "6 of one, half dozen of the other" solution. Copying pieces of Liquid code out of archive.html & sidebar.html into new layout, versus copying layout files and modifying them to access info through the layout variable, both required about the same amount of work.
Just wanted to offer this up as a viable alternative solution to customizing pages generated by jekyll-archive.

There's probably some Liquid voodoo that might be possible to determine what layout is in use and then apply page. or layout. accordingly. Versus duplicating all of the includes into the Jekyll Archives just to make that minor change.
Would DRY things up some too. All hypothetical though as I haven't tested it :wink:

I wonder, has there been any news on this? Is there some simpler way to customize the category/tag pages generated by jekyll-archives (e.g. add a header image)?

@ohadschn Your best bet is opening a feature request on jekyll-archives to allow for it. There's really only a few variables exposed at the archive page level through the plugin... all of which are related to getting the title.
As I mentioned above, if you're properly motivated you can come up with some custom Liquid to do it. I did just this on one project.
For example say you're creating a set of tag archives and what a header image on them that corresponds with the current tag... let's call that foo.
What you can do is in your tag archive layout add something like:
{% assign taxonomy = page.title | downcase | slugify %}
{% assign tag = site.data.taxonomy[taxonomy] %}

What this does is take the page.title, which in this case will be Foo and does some normalizing (lowercase, replace spaces with -, etc.). If the title was "Foo Bar" you'd get foo-bar. This gives you a predictable value you can use as a "key" in a data file. In this case _data/taxonomy.yml.
Which looks something like:
foo:
  description: "Foo is an example of foo."
  image: /path-to-image-foo.jpg

foo-bar:
  description: "Foo Bar is an example of foo + bar."
  image: /path-to-image-foo-bar.jpg

Through the assigns above you can easily pull in this data into the tag archive layout now:
{% if tag.image %}

{% endif %}

I used this method to add detailed descriptions for each tag archive page. But you can use it to assign images and any other data you can dream up. You can see examples of my old tag archive layout and taxonomy.yml files here.

@mmistakes thank you for the detailed explanation!
I had something simpler in mind though, just a static header: image: foo.jpg to all archive pages. I was wondering if there were a simpler way to do that than the one outlined by billgarrison (I prefer to override as little as possible in order to enjoy the most of future updates), but I gather currently there is not, due to lack of access to the headers liquid code in that scope.
I opened an issue with jekyll-archives: https://github.com/jekyll/jekyll-archives/issues/107.

You could always just create your own jekyll-archives layout that has the page header image hard coded in it.

I'm confused, isn't this what the OP initially tried to do and failed because the archive-taxonomy.html layout doesn't have the Liquid code for headers? (I tried the same to verify, indeed it didn't work and no image was displayed)

Depends on what you want to do.
If you want all of the archive pages to have the same image you can just dump that into a new layout. If you want something more dynamic and unique for each page then my solution above will work. You'll add around 4 lines of Liquid to it, or you can wait for a feature add to jekyll-archives.

Also, even if that layout had the header logic, it would just comes across as null because Jekyll-archives has no concept of the page object to pass data.
You need to use my method above to assign data from a data file so it has something to populate the header with. Since that is highly custom it won't ever be included in the theme. That layout is fairly barebones so you'll be safe overriding it with your own custom logic.

So when you say "If you want all of the archive pages to have the same image you can just dump that into a new layout" you mean write the actual HTML into archive-taxonomy.html (e.g. img src), rather than use the header logic?

Correct.

Does this look about right (it seems to work)?
---
layout: default
author_profile: false
---

  {% include sidebar.html %}

{{ page.title }}

    {% for post in page.posts %}
      {% include archive-single.html %}
    {% endfor %}

{{url}} won't do anything, you'll probably want to switch that to {{ site.url }} or better yet leverage Jekyll's absolute or relative filters.

BTW for anyone wondering how my initial link worked (using the non-existent {{url}}), it simply evaluated to nothing and /foo/resource works when your site is served off the root/apex of the domain...


Useless style configurer

Changing the json in style configurer doesn't make any impact

I'm working on a more powerful, user friendly and efficient style configurer tool. Kindly wait.

fixed - try the latest build


Move away from Bitbucket v1 to v2

#1552

also use swagger
their swagger is broken for codegen due to https://github.com/swagger-api/swagger-codegen/issues/5562

Coverage decreased (-7.5%) to 57.499% when pulling 32b2606e4ecc8646f489c30d1f8a7d171ec35cfc on feature/bitbucket_update_v2 into 54ab051730f701b9f1df34951d86c6e1776dad4a on develop.


fix(versions): update Activiti/activiti-cloud-full-chart-security versions

UpdateBot pushed helm dependency: activiti-cloud-full-example to: 7.1.92

UpdateBot commands:
updatebot push-version --kind helm activiti-cloud-full-example 7.1.92


Create hello world

Print Hello World statements n times.

Sorry @harshit-3103 , we already have this!

Okay Sir


replicate updates to sys.path to ray workers

This request is to work around an issue with ray (that likely applies to any framework that relies on Python pickling for serde). Because ray workers do not see updates to sys.path after initialization, objects that depend on modules imported from newly added paths will not work properly on Ray workers when they get deserialized.

Hi @smacke @devin-petersohn has this issue been resolved?


[newrelic-infrastructure] better detection for enableProcessMetrics

Is this a new chart
No
What this PR does / why we need it:
Previously, if the user defined enableProcessMetrics to false, it wouldn't be printed into the template. This could be workarounded by definining it as "false" in the values file, but this is not possible from the command line with --set.
This PR implements an alternative (and perhaps rather hacky) approach to detect an undefined .Values.enableProcessMetrics.
Special notes for your reviewer:
Any less hacky solution is welcome.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [mychartname])

PLease remember to add changelog :)


Emmil26 patch 1

Thank You

@Emmil26 file/lib/domains/ph/edu/antiquespride.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.


Questions: Timeline pagination, local storage

Hi @Zatnosk,
I played with the mastodon api and searching for a working lib to simplify it. I checked the source code and it looks like libodonjs handles

app register, auth, token with locale storage to reuse?
wrap functions around api endpoints

Missing features

write a new toot?

During my own api tests I searched for timeline pagination and haven't found an example. Do you know how to build a timeline pagination

show initial count of posts (for example 10 = 1-10)
load (10) older posts (11-20)

I found since_id, max_id and limit, but don't know how to build the correct query to get the exact posts / toots needed...

Yes, posting toots is still unimplemented in libodon.js. It shouldn't be too much work to implement it, but I haven't had the time or motivation to finish it (mostly because it seems noone is using this lib, which is difficult when it's incomplete - bad circle that is.)
Timeline pagination should happen automatically on the Mastodon end, you can choose how many posts to show per page with the "limit" option. E.g. app.timeline("home", {limit: 10}). The default limit is 20.
Additionally, when you make a request to the timeline, there should be a max_id and/or since_id included in the response, which you can use to get the next/previous page. E.g. app.timeline("home",{limit: 10, max_id:<PHONE_NUMBER>}).
I hope this helps :)


Update backup-dpm-automation.md

Corrected an error in the cmdlet flow

Hi @AnuragMehrotra, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (anuragm). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, or work for Microsoft Open Technologies, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@AnuragMehrotra Thank you for this contribution.  I'll ask the author to review.
@Jim-Parker Would you please review this change and let me know if I should merge it?

@AnuragMehrotra  In the paragraph just above the change, it mentions that the "step is to specify the protection method using the Set-DPMProtectionType cmdlet." Should there be additional info to support the addition of the Add-DPMChildDatasource cmdlet?

I have added some details to explain the new cmdlet.

@AnuragMehrotra added content looks good. Thanks.


ExceptionMappersIntegrationTest fails when building from newest version

Bug Report
Describe the Bug
i cloned the repository and ran the gradlew.bat clean build and got 1 failed test.
ExceptionMappersIntegrationTest
shouldListJakartaValidationMessageInResponseBody()
I have attached the full errormessage.
Exception.txt

Hi @wolf4ood
thanks for your reply.
do u know how i could change it so its not localized anymore and in english?

@abazatte  could you try to append this parameters in the build command?
-Duser.language=en

thank you the build worked.

thanks for reporting, something that could be fixed but definitely not a bug, labeled this as flaky test.
Could you provide a PR to address this?


PGSQL support?

Hi, on the homepage, there is a mention of PGSQL support.
Where can I find the relative worker?

Hi, on the homepage, there is a mention of PGSQL support.
Where can I find the relative worker?

Sorry, it's a mistake of docs, I think you can try to compile the https://github.com/antlr/grammars-v4/tree/master/sql/postgresql to parser and integrate it by yourself.

@salvoravida of course, you can refer to dt-sql-parser project, or use this https://github.com/tunnelvisionlabs/antlr4ts project

rc/grammar/pgsql/PostgreSQLLexer.g4:2196:29: syntax error: mismatched input 'options {' expecting COLON while matching a lexer rule
@wewoor I'm getting this error while building. Any idea? is it possible that the 4.8 ant version is old?

@salvoravida https://www.npmjs.com/package/monaco-sql-languages/v/0.10.0


VST only discover 200 tests from a suite

I have a AzureOps pipeline using VST, however the VST task can only discover 200 tests from the suites. The query-based suites actually has couple thousands tests. I checked configuration from test plan view. It returns a thousand tests with same configuration. I tried couple different suites, it still discover 200 tests. Wondering which field can limit test discover number in VST?

Thanks for your question. It looks like you're working through an issue with your scenario or implementation, rather than an issue with the documentation. Here are a couple of options where you might consider asking your question:

Azure DevOps Support Bot
Azure DevOps on Stack Overflow

My apologies for the delay in responding.


strange DOS shape

Dear all,
I am trying to understand what is going on.
I get this weird DOS plot (sumo-dosplot) for a system where the bandgap reported by sumo-bandstats is apparently less than 0.1 eV
The DOS itself seem those of a wide bandgap semiconductor...(~2.5 eV)
Indirect band gap: 0.080 eV
Direct band gap: 0.091 eV
k-point: [0.00, 0.06, 0.00]
k-point indices: 28
Band indices: 916, 917
Valence band maximum:
Energy: 0.552 eV
k-point: [0.06, 0.00, 0.00]
k-point location: between \Gamma-A
k-point indices: 26
k-point degeneracy: 1
Band indices: 916
Conduction band minimum:
Energy: 0.633 eV
k-point: [0.00, 0.06, 0.00]
k-point location: between \Gamma-A
k-point indices: 28
k-point degeneracy: 1
Band indices: 917
Using parabolic fitting of the band edges
Hole effective masses:
m_h: -0.540 | band 916 | [0.06, 0.00, 0.00] -> [0.00, 0.50, 0.00] (A)
m_h: -0.168 | band 916 | [0.06, 0.00, 0.00] -> [0.00, 0.00, 0.00] (\Gamma)
dos.pdf
It is an interface between perovskite and bulk GeO2 system.
I do definitely struggle to understand what is going on.
It is not the first time I get such results, which make me even more confused.
The code is installed in italian supercompute center with the standard installation procedure. The same results (the dos) are obtained in my local cluster.
Here my INCAR
SYSTEM = BAPI4
xc
GGA = PE
#surface dipole
IDIPOL = 3
LDIPOL = .TRUE.
LVHAR=.TRUE.
LREAL = Auto
PREC= Accurate
ENCUT=600.00
ISMEAR = 1
SIGMA  = 0.000011
#electronic RELAXATION
NELMIN = 4
NELM = 800
ISIF = 2
IBRION = 1
NFREE  = 10
ADDGRID = .TRUE.
#accuracy of the calculation
EDIFF = 1.E-5 ! 1.E-5
EDIFFG= -0.05 ! -0.05
AMIN=0.01
#ionic steps
NSW = 0
IVDW = 12
AMIX     = 0.1
BMIX     = 3.00
LORBIT=11
NEDOS=2000
ICHARG=11
POTCAR are standard ones (Sn and Ge with d)
Any suggestion?
Thanks
Giacomo

Can you try using tetrahedron method instead of Methfessel-Paxton for the smearing (ISMEAR = -5). MP smearing is not recommended for insulators.

Dear utf,
thanks!
 BYE!!! <----       |

I think it is matter of different IBZKPT.
By the way, my system is not an insulator (Gap~0)
Many thanks,
G

Tetrahedron method is only for DOS calculations (not band structures). If your system is metallic you should use a large SIGMA. E.g., SIGMA = 0.2.

Many thanks! That was the issue.
I was inadvertently using sigma values that were far too small for DOS calculations. With SiGMA 0.1-0.2, the behaviour becomes correct again. Thanks again.
G


Main

.

Hello, @ShanM98 is it really your intention to merge this PR to the main template ?
I mean, your PR contains specific content that is tied to  your need (I'am thinking about the storage class names, the storage capacities).
Also, I'm not using the latest tags for Docker images as it could easily break the tool if any of those latest change would be a breaking change or simply not be compatible with the actual state of the stack


Add GetShortestPath overload

Fixes #116. Adds new overloads for GetShortestPath that allows identifying the end state by condition rather than by value.

Codecov Report
Base: 87.73% // Head: 86.91% // Decreases project coverage by -0.81% :warning:

Coverage data is based on head (e0a68ac) compared to base (b71348f).
Patch coverage: 61.29% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #128      +/-   ##
==========================================
- Coverage   87.73%   86.91%   -0.82%
==========================================
  Files         190      190
  Lines        4941     5061     +120
  Branches     1172     1180       +8
==========================================
+ Hits         4335     4399      +64
- Misses        315      363      +48
- Partials      291      299       +8

Impacted Files
Coverage Δ

Source/SuperLinq.Async/GetShortestPath.cs
82.90% <60.60%> (-11.22%)
:arrow_down:

Source/SuperLinq/GetShortestPath.cs
83.41% <62.06%> (-10.79%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


fix non-fetchable hashes in openssl dgst -list

openssl dgst -engine gost -list doesn't show hashes added by gost-engine because they are not supported by EVP_MD_fetch and EVP_get_digestbyname should be used instead. Another example of this issue has been fixed in https://github.com/openssl/openssl/pull/12689
By the way, openssl enc -engine gost -list works correctly.
CLA: trivial

I'm okay with trivial.

@paulidale please reconfirm

Confirmed.  I don't feel that reconfirmation is necessary for a trivial reformatting like this.

Squashed and merged to master, 3.1, and 3.0 branches. Thank you for your contribution.


add support for docker stack config command

Hello,
I notice that the StackCLI class miss the config method (see https://docs.docker.com/engine/reference/commandline/stack_config/).
I'll create a pull request :-)

Thanks!


"Feature: Add Comment Functionality under Blog Posts"

Description
This pull request adds the ability to add comments to blog posts in the project. It aims to enhance user engagement by allowing users to share their thoughts and feedback on individual posts.
There is yet improvement to be made, as comments were added from the Admin page, and adding comments from under the posts hasn't been tested
Changes Made
In this pull request, I have added the ability add comments to blog posts. The main changes made include:

Created a new Comment model to represent individual comments.
Established a foreign key relationship between the Comment model and the Post model to associate comments with their corresponding posts.
Implemented a comment form on the post detail page, allowing users to enter their comments.
Developed the necessary backend logic to save and retrieve comments from the database.
Updated the post detail template to display the comments below the post content, including the author's name and timestamp.

These changes enable users to engage in discussions, provide feedback, and share their thoughts on the blog posts, fostering a more interactive and community-driven experience.
Checklist

[x] I have read the contributing guidelines
[ ] I have added tests to cover my changes and they all pass in addition to existing tests.
[ ] I have run Google Lightouse on pages where my code is used and there are no warnings or errors that are not already present in the master branch.
[x] I have added documentation for my changes.

Why were the base settings and dev settings files deleted?
I need those files to run your local PR.
If you need help getting the settings files working, let me know!

Oh. I didn't realize they were deleted. Let me fix it

I'll fix it and do another PR


Emit events on Remote DB

Currently remote db doesnt emit any events that db.EventListener expects.
https://github.com/NethermindEth/juno/blob/82e738efe30b7a748704330a24bd4811d59cb242/db/remote/db.go#L53-L55

Hello! I would like to help with this one!
I think this issue can take me about 2 to 5 days to complete, exactly the time limit of the OD Hack!
I have over 3 years of experience as a software engineer especially working with Golang, developing microservices and backend applications, I want to apply this knowledge in web3 and blockchain projects, on the other hand, this is my 2nd OD Hack, in the last one I contributed to Go projects for Nethermind cairo-vm-go

I am applying to this issue via OnlyDust platform.
My background and how it can be leveraged
I am a blockchain and DeFi developer . I am having experience of 8 months . I am currently working in a DeFi startup . Also I have developed algorithmic stablecoin that is pegged to INR . My experience in programming language will help me to solve this issue .


Create id_by_username.py

this is with the new async version of the package

Have you tested it yet?

Alright. I'll merge this PR.


Signing Message With Ledger Fails to Verify

Hello
I'm currently testing SIWE with a Ledger Wallet and get the following error:
invalid compact signature recovery code when I try to Verify the signature.
I'm currently using this version of the package:  v0.0.0-20220218031631-8d1130da4d8f
Could you shed some light on what can be the issue here?

@jiulongw , I got more info on this, https://github.com/afa7789/siwe-go it's on the spruce package, but both had the same issue.


resolved_ts: use tracked index update region read progress

What problem does this PR solve?
Problem Summary:
Currently, the safe_ts and apply_index in the leader's RegionReadProgress are updated in different threads, although
both of them using fetch_max to ensure they are increasing, in some rare conditions there may still be problems:
One case is safe_ts update first:

resolved ts worker update the safe_ts
before the apply_index is updated, the leader broadcast the (safe_ts, apply_index) item to followers, where the apply_index is smaller than expected
the follower receives the (safe_ts, apply_index) item with a smaller apply_index and serve read request before it has enough data and may get an inconsistent result

Another case is apply_index update first, which will cause the follower need to catch up more data to serve read request, will fix it in the next PR
What is changed and how it works?
What's Changed:
This PR fixes the first case (safe_ts update first) by not directly update the safe_ts in resoled ts worker, and instead using RegionReadProgress::update_safe_ts, which will wait for the apply_index catch up before update safe_ts
Check List
Tests

Integration test

Release note

No release note

/run-all-tests

/run-all-tests

/run-all-tests

/run-all-tests

/run-integration-br-test

/run-all-tests

/run-all-tests

/merge

/merge cancel
Wait for CI back to life

/merge

/merge

/rebuild

/merge cancel

/rebuild

/run-all-tests

/run-unit-test

/run-integration-tests

/run-unit-tests

/run-all-tests

/rebuild

/run-all-tests

/merge


Allow  TridentBackendConfig to be incoperated into helm chart as CRD

Describe the solution you'd like
Helm chart should have the ability to incorporate the CRD of TridentBackendConfig this definition seems to be missing from the helm chart making it difficult to incorporate into CI/CD systems
on top of this, it looks like there is means to install the existing CRDs from the helm chart
Describe alternatives you've considered
so essentially there should be a field called
extraDeploy
which is an  Array of extra objects to deploy with the release
an example of which  can be taken from
https://github.com/bitnami/charts/tree/master/bitnami/grafana/#installing-the-chart
which would allow the backend to be rendered alternatively it can be included in the helm chart as a template to be populated via the values.yaml file
https://github.com/bitnami/charts/tree/master/bitnami/cert-manager
where the key value pair of
installCRDs: true
is used in this instance
in terms of the CRDs for installation this should be  set in the values.yaml  an example of this can be found in
Additional context
in addition to the above, I feel that the trident installer needs to be bundled with the helm chart in the form of kubernetes manifest in this case, there does not seem to be much in terms of documentation around getting the TridentBackendConfig CRD functioning as it seems to be committed from the helm chart
making documentation like
https://netapp-trident.readthedocs.io/en/latest/kubernetes/operations/tasks/managing-backends/tbc.html#step-2-create-the-tridentbackendconfig-cr  effectively useless unless tridentctl is used
as per
https://docs.netapp.com/us-en/trident/pdfs/sidebar/Configure_backends.pdf
this and to help with CI/CD system a helm repo is also beneficial which can be seen up via
https://helm.sh/docs/topics/chart_repository/
and avoid  errors such as
kubectl : error: unable to recognize "testbackend.yaml": no matches for kind "TridentBackendConfig" in version "trident.netapp.io/v1"

so instead of having to extract the helm charts from the release in github the changes are passed via CI/CD into the chart repo and downloaded in the form of a URL such as
https://charts.bitnami.com/bitnami
also a tutorial on how to deploy TridentBackendConfig  in yaml would be useful in the form of  a youtube video most tutorials seem to focus on tridentctl

@dc232 thank you for posting this. Today, backends can be created by 2 means: tridentctl, kubectl [Using tridentBackendConfigs. I understand that your ask is to create backends as part of a Helm install. Is that right? The best way to do it right now would be to a.Install Trident with Helm b. Create backends with kubectl or tridentctl post-install.

Have you taken a look at the instructions for creating backends using TridentBackendConfigs? I noticed you referenced our docs from its previous home. Did you see it linked somewhere?
Trident's Helm chart is hosted on a repository. Instead of downloading the installer from our GitHub repo, you can pull the Helm chart and install

Hey @balaramesh so i'm trying to create the backend through azure pipelines and a terraform template
example code
data "template_file" "netapp_backend_config"{
    depends_on = [kubernetes_secret_v1.netapp]
  template = file("${path.module}/BackendCRD/backend-anf.yaml")
  vars = {
      # "clientID" = data.azurerm_client_config.current.client_id
      # "clientSecret" = var.netappclientsecret
      "metadataname" =  "nett-app-backend"
      "namespace" = kubernetes_namespace.netapp.metadata[0].name
      "storagedrivername" = "azure-netapp-files"
      "subscriptionid" = data.azurerm_client_config.current.subscription_id
      "tenantid" = data.azurerm_client_config.current.tenant_id
      "location" = var.location
      "servicelevel" = var.servicelevel
      "secretcredentails" = kubernetes_secret_v1.netapp.metadata[0].name
      "subnet" = var.subnet
      "virtualNetwork" = var.virtualNetwork
      "nfsMountOptions" = "nfsvers=4"
      "backendName" = var.backendName
    }
}

resource "kubectl_manifest" "netapp_production_backend_config" {
    yaml_body = data.template_file.netapp_backend_config.rendered
    depends_on =[kubernetes_secret_v1.netapp]
}

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: ${metadataname}
  namespace: ${namespace}
spec:
  version: 1
  storageDriverName: ${storagedrivername}
  subscriptionID: ${subscriptionid}
  tenantID: ${tenantid}
  location: ${location}
  serviceLevel: ${servicelevel}
  virtualNetwork: ${virtualNetwork}
  subnet: ${subnet}
  backendName: ${backendName}
  nfsMountOptions: ${nfsMountOptions}
  credentials:
    name: ${secretcredentails}

however this approach results in
kubectl : error: unable to recognize "testbackend.yaml": no matches for kind "TridentBackendConfig" in version "trident.netapp.io/v1"

when the pipeline is run
For some  reason if the templated yaml is applied outside of the pipeline the backend then get applied once the helm chart is applied as expected, this is slightly perplexing as I have templated cert-manager CRD in the same manner and have it apply in the cluster without error
The documents that I have found most useful in terms of the backend configuration have been
https://docs.microsoft.com/en-us/azure/aks/azure-netapp-files
https://netapp-trident.readthedocs.io/en/latest/kubernetes/operations/tasks/backends/anf.html
Thank you for the instructions link on the backend I will be sure to take a look
in terms of the
helm repo add netapp-trident https://netapp.github.io/trident-helm-chart

I have tried this with the terraform
resource "helm_release" "netapphelm" {
    depends_on = [
      kubernetes_namespace.netapp,
      kubectl_manifest.deploy_trident_orchestrator_crd
    ]
    name  = "netapp-trident-operator"
    namespace = kubernetes_namespace.netapp.metadata[0].name
    repository = "https://netapp.github.io/trident-helm-chart"
    chart = "trident-operator"
}

however this didn't seem to work,
I will double check this tomorrow
however can you confirm if the params ae correct for the pulling of the chart?

The error that you don't have the TridentBackendConfig spec is mostly caused by the fact that the custom resource is defined by the operator. This happens after a successful deploy using the Helm Chart. Maybe you need to delay the creation of a backend by a few seconds/minutes?
The parameters of the chart look ok to me. Your second error's probably caused by interchanging the client ID and secret t from Azure, as it states.

@balaramesh  yeah that's makes sense I did try this technique via
resource "time_sleep" "wait_30_seconds" {
  depends_on = [helm_release.netapphelm]
  create_duration = "240s"
}

unfortunately I recived the same error :(

I think you should give a larger wait-time a try, or try to create a backend post-deploy (you could do this by running a command to get the version of Trident)

@balaramesh i can try 10 minutes maybe, tried 6 minutes but got the same error?
is the command for the version of trident
kubectl describe torc trident

Yes. You should look at the status of the torc object. When it reports itself as "Installed", you are ready to create a backend.

@balaramesh tried a 10 minute timmer this time sadly i got the same result :(
╷
│ Error: netapp/nett-app-backend failed to create kubernetes rest client for update of resource: resource [trident.netapp.io/v1/TridentBackendConfig] isn't valid for cluster, check the APIVersion and Kind fields are valid
│
│   with module.Netapp.kubectl_manifest.netapp_production_backend_config,
│   on Netapp_module\helm.tf line 92, in resource "kubectl_manifest" "netapp_production_backend_config":
│   92: resource "kubectl_manifest" "netapp_production_backend_config" {
│
╵

@dc232 were you ever able to find a solution for this?

Hi @ryangrush I did in the end it was a bit of hack as i needed to create a service account user, i also found that because of a bug in Linux nfs4 doesn't mount natively so i managed to get it working with nfs3 i'll post the terraform module for this on my gitub for people to use in thier CI/CD pipelines

@ryangrush
have a look at
https://github.com/dc232/Terraform-Trident-Config
i haven't run
terraform validate
against it yet as its a little tricky but should get the job done with a few tweaks

@dc232 thank you for uploading the repo! There's a scarce few resources online for this.
I was able to manually install Trident last week, but I'm still having problems getting it to work with Terraform. This part doesn't seem to pass validation (at least not in TF v1.1.6), do you remember if that was needed?

Hi @ryangrush so the idea in that line is render out the YAML in memory so i was trying to get the raw output from the get request as that was the file hat was needed, when you perform the validate whats the error that you get, i have updated the repo slightly to remove the empty depends on

@dc232 I was able to use data.http.crds.response_body now, thanks. I also noticed a small syntax error here btw.
I saw you had run into something similar back in February, but I kept running into this error -
 Error: tridentorchestrators.trident.netapp.io failed to create kubernetes rest client for update of resource: Get "http://localhost/api?timeout=32s": dial tcp [::1]:80: connect: connection refused
│
│   with module.netapp.kubectl_manifest.deploy_trident_orchestrator_crd,
│   on modules/netapp/main.tf line 72, in resource "kubectl_manifest" "deploy_trident_orchestrator_crd":
│   72: resource "kubectl_manifest" "deploy_trident_orchestrator_crd" {

I did manage to get it working yesterday, but while in the process of adding the changes to a PR and applying it to our "sandbox" AKS cluster it gets stuck on that error again. The key to getting it to work yesterday was adding a kubernetes_persistent_volume_claim resource to my proof-of-concept.
This is the TF code currently, with some of the other resources removed until I get past this problem. The Azure App for var.azure_client_id has the API permissions listed in the screenshot.
Do you remember how you resolved that error message? The only thing I can think of is a permissions issue but I'm also quite mentally fatigued at this point too lol.

Hey @ryangrush thanks for pointing out the error I have updated it to make it compatible with the new trident version via
https://github.com/NetApp/trident/issues/716
i don't remember exactly how i got working in the past  it however i suspect its via the kubectl provider via gavin bunny
it has a bit of funny config so when i created this project i did it this way
provider "kubectl" {
  host                   = coalesce(module.MianModule.kown_kube_host, module.MianModule.kube_host)
  client_certificate     = base64decode(coalesce(module.MianModule.client_certificate_file, module.MianModule.kube_client_certificate))
  client_key             = base64decode(coalesce(module.MianModule.client_key_file, module.MianModule.kube_client_key))
  cluster_ca_certificate = base64decode(coalesce(module.MianModule.cluster_ca_certificate_file, module.MianModule.kube_cluster_ca_cert))
  load_config_file       = false #this is true by deafult see #https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs
}

the docs for the provider also suggests you can load the kubeconfig directly
so something like
``
provider "kubectl" {
apply_retry_count      = 15
host                   = var.eks_cluster_endpoint
cluster_ca_certificate = base64decode(var.eks_cluster_ca)
load_config_file       = false
exec {
api_version = "client.authentication.k8s.io/v1alpha1"
command     = "aws-iam-authenticator"
args = [
"token",
"-i",
module.eks.cluster_id,
]
}
}

i think how i got round the error in the end by setting
`  load_config_file       = false`
in my case

these docs should be able to help with your use case
https://registry.terraform.io/providers/gavinbunney/kubectl/latest/docs

@dc232 ok thanks, I'll look into the kubectl provider angle.
One of the few differences between the PoC I stood up yesterday and integrating it into our main Terraform repo is that some providers are defined elsewhere, so that could be inline with the kubectl theory. Also its using a dedicated TF Azure App for it's identity, I was using my personal Azure user as identity for the PoC.
Thanks for the code snippets and link.

@dc232 it looks like load_config_file = false and defining the provider "kubectl" block was key in getting it to play nice with our other Terraform code. I think I've managed to finally get it working, thanks again for everything!
It does look like its still dependent on the kubernetes_persistent_volume_claim resource being defined however. I tried removing that resource and just referencing the storage class but it says 0/1 nodes are available: 1 persistentvolumeclaim "storage-class-netapp-pr" not found.
Here is my TF code for what its worth -
volume {
  name = "netapp-pr"

  persistent_volume_claim {
    claim_name = "storage-class-netapp-pr"
  }
}

volume_mount {
  name       = "netapp-pr"
  read_only  = false
  mount_path = "/data-netapp-pr/"
}


Fix snapshot creating file path url for simulatorHostHome

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Description

The issue is that URL(string: simulatorHostHome) will only generate for example /users/myuser. It is therefor  missing file:// that it is getting from URL(fileURLWithPath: simulatorHostHome).
If you add URL(string: "file://\(simulatorHostHome)") it will work as expected. But I will recommend to use URL(fileURLWithPath: simulatorHostHome). That way we don't need to handle the file:// our self.
I have added a small test to check if the simulatorHostHome actually exists. Since there was added a check for this in the previous commit.
Motivation and Context

Fixes issue described in #8895

Duplicates #8791

I just merged https://github.com/fastlane/fastlane/pull/8791, is that ok, or do we need another change? Thanks for the PR 👍

@KrauseFx that sounds good 👍  Didn't see the other PR :)


Connecting to terminal and permissions

Does connecting to terminal with a read only session, blocks fee autopilot?

Yes. The to enable the autopilot on your node, you can't use a read-only session with terminal.lightning.engineering.

Thanks @guggero! Yep, that's 100% accurate. You cannot enable Autopilot on your node with a read-only session. Read-only, as the name suggests :), only allows for you to see the node data, but not make any changes to the node/liquidity management.
Depending on your use case, you could use an admin session to turn on Autofees on your node. Then, grant yourself or someone else, again depending on your use case, access to the node using a read-only session. That flow wouldn't interrupt Autofees as once something is setup then the creation of a read-only session has no impact.

Sorry I was not 100%clear, I already had an admin session which activated autopilot, then I revoked the admin session but the autopilot remained. Then I login in many other times but as read-only sessions. Autopilot session is always there, but as I see no activities for a few days I wonder if I need to grant an admin session again.


feat(credentials): add compatibility with Verifiable presentation cre…

feat(credentials): add compatibility with Verifiable presentation credentials
What this PR changes/adds
Briefly describe WHAT your pr changes, which features it adds/modifies.
Why it does that
Briefly state why the change was necessary.
Further notes
List other areas of code that have changed but are not necessarily linked to the main feature. This could be method
signature changes, package declarations, bugs that were encountered and were fixed inline, etc.
Linked Issue(s)
Closes #115
Checklist

[x] added appropriate tests?
[x] performed checkstyle check locally?
[x] added/updated copyright headers?
[x] documented public classes/methods?
[x] added/updated relevant documentation?
[ ] added relevant details to the changelog? (skip with label no-changelog)
[x] formatted title correctly? (take a look at the CONTRIBUTING and styleguide for details)

A lot of unit-tests are missing and should be added before the PR is opened to review.
Please mark the PR as draft meantime

As discussed in chat, each VC present in the VP must also be verified.
I created a new JwtPresentationEnvelopeVerifier and exctracted the common code with JwtCredentialEnvelopeVerifier in an abstract Verifier.


Empty/Cleared Interface when time ruler is moved to another window

Describe the bug
When time ruler is moved outside of the main obsidian window to create a second/new window, the interface gets cleared and shows no clicklable elements.
To Reproduce
Steps to reproduce the behavior:

Click on "Open Time Ruler"
Right click on the Time Ruler Icon
Click "Move to new window"
Drag a task somehwere
-> Here is where the bug / empty screen happens.

Expected behavior
I would expect the time ruler interface to work in a secondary window.
Screenshots

Obsidian Version:

[ ] Desktop 1.5.8

I agree, this is probably a bug on loading and it's hard to reproduce. Are there any console messages?

I'm asking the developer community because this is an issue with global Obsidian window events.

This has been fixed in v2.5.0.


Casing of 'Query string' is wrong on 'Generate Shared Access Signature' dialog

Storage Explorer Version: 1.4.0
Platform/OS Version: Win10 /MacOS High Sierra /Linux Ubuntu 16.04
Architecture: ia32
Build Number: 20180730.1
Commit: 17eb92a4
Regression From: Not a Regression
Steps to Reproduce:

Right click one storage account -> select 'Get Shared Access Signature...' ->click 'Create' on 'Generate Shared Access Signature' dialog.
Check the 'Query string'.

Expected Experience:
Display 'Query String'.
Actual Experience:
Display 'Query string'.

Verified on the latest build 20190614.7. This issue doesn't reproduce. So we close it.


Added UNSAFE flag to deprecated component lifecycle methods

After react 16.9 update, a warning is being thrown if unsafe component lifecycle methods are used without UNSAFE_ flag. Added the flag to suppress the warning.

Please merge this PR 😃

@seeden can this be merged?


Can we auto install pip when not detected?

In this bug here, https://github.com/microsoft/vscode-jupyter/issues/7737 @mjbvz  was having trouble installing ipykernel (well because /usr/bin/python didn't have pip)
Why can't we just run python -m ensurepip --upgrade? (as indicated here: https://pip.pypa.io/en/stable/installation/#supported-methods)

Python extension didn't want this done when I was planning on submitting a PR for their extension.
We are awaiting on telemetry for this.

I totally agree, we should do this, even Kai ran into this, i think Sid and a number of others have run into this very often.

What is the telemetry going to tell us? What percentage of people failed to install one of our dependencies because they didn't have pip installed? And if that number is high, we use it to convince Python to enable this? :) Or are there other reasons that Python doesn't think this is a good idea?

/verified


List links in a table using $page.user.links

Since https://github.com/whizzes/linx-dashboard/pull/16 capability to list links owned by the session user is possible.
Links must be listed on: /links page, where a user will be able to check on its existing links data.

I can make this feature, ¿you can assign me?

I can make this feature, you can assign me?

Awesome! Of course!


Authentication Issue

Running bar-gmail auth brings up the URL and I can click on it. However, when selecting my account, this error pops up:

Upon further investigation, I found that to stop this, I needed to enable 'LSA(Less Secure Account)'. However, this function no longer exists (deprecated and erased), meaning I can no longer authenticate. Is there a workaround?

Ah, I see. I was able to use a different Gmail bar extension that used IMAPLib and Python. Thank you for clarifying.


--find-links entries lack hashes in uv.lock

Because they're treated as registry distributions, but the hashes are computed as if they're URLs.

Related to the work that happened here: https://github.com/astral-sh/uv/pull/5544


CMS UI 1.0 cleanup continues

Good to merge, Shawn
editor toolbar back button improvements, loading improvements, cleanup

Deploy preview ready!
Built with commit 8a25a3ba24347cf55e91e04ddc14676d4352ddd7
https://deploy-preview-878--netlify-cms-www.netlify.com


Connect up template step linting/language support

This is a...

[x] Feature request
[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Documentation issue or request

Description
With the template step in place the linting support needs to be ported over.  This comes in the form of some glue classes between codemirror and freemarker, velocity and mustache javascript linting libraries.  Maybe I'll follow the same convention that the old code used and keep everything together in the app.

Nope, I lied, I'll put the linting dependencies in utils


[tool_crash] RPCError

Command
flutter run

Steps to Reproduce

...
...
...

Logs
RPCError
#0      new _OutstandingRequest (package:vm_service/src/vm_service.dart:261:34)
#1      VmService._call.<anonymous closure> (package:vm_service/src/vm_service.dart:1778:25)
#2      VmService._call (package:vm_service/src/vm_service.dart:1790:8)
#3      VmService.getVM (package:vm_service/src/vm_service.dart:1245:25)
#4      FlutterDevice.initLogReader (package:flutter_tools/src/resident_runner.dart:428:55)
#5      HotRunner.attach (package:flutter_tools/src/run_hot.dart:266:21)
<asynchronous suspension>
#6      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:867:27)
<asynchronous suspension>
#7      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1408:27)
<asynchronous suspension>
#8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#9      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#10     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:420:9)
<asynchronous suspension>
#11     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:5)
<asynchronous suspension>
#13     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
<asynchronous suspension>
#14     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>

[✓] Flutter (Channel stable, 3.24.3, on Microsoft Windows [Version 10.0.22631.4169], locale en-GB)
    • Flutter version 3.24.3 on channel stable at C:\Users\Tre\Downloads\flutterwindows\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (3 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at C:\Users\Tre\AppData\Local\Android\sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[!] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.11.4)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.11.35312.102
    ✗ Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK

[✓] Android Studio (version 2024.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0--11852314)

[✓] VS Code (version 1.94.0)
    • VS Code at C:\Users\Tre\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.98.0

[✓] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 15 (API 35) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22631.4169]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 129.0.6668.90
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 129.0.2792.79

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 2663184aa79047d0a33a14a3b607954f8fdd8730
Plugins
barcode_scan2-4.3.3
cloud_firestore-5.4.4
cloud_firestore_web-4.3.2
firebase_core-3.6.0
firebase_core_web-2.18.1
path_provider-2.1.4
path_provider_android-2.2.10
path_provider_foundation-2.4.0
path_provider_linux-2.2.1
path_provider_windows-2.3.0

Closing this as a duplicate of https://github.com/flutter/flutter/issues/154903, parent issue in https://github.com/flutter/flutter/issues/153471.
If you have a reliable way to let us reproduce this, kindly leave a comment in the parent issue.
Thank you


Make sure port is open when using hca dss login.

Just ran into this:
(v3nv) quokka@qcore:~/delete$ hca dss login
Traceback (most recent call last):
  File "/home/quokka/data-store/v3nv/bin/hca", line 11, in <module>
    sys.exit(main())
  File "/home/quokka/data-store/v3nv/lib/python3.6/site-packages/hca/cli.py", line 136, in main
    result = parsed_args.entry_point(parsed_args)
  File "/home/quokka/data-store/v3nv/lib/python3.6/site-packages/hca/util/__init__.py", line 575, in arg_forwarder
    return command(**command_args)
  File "/home/quokka/data-store/v3nv/lib/python3.6/site-packages/hca/util/__init__.py", line 409, in login
    credentials = flow.run_local_server(success_message=msg, audience=self._audience)
  File "/home/quokka/data-store/v3nv/lib/python3.6/site-packages/google_auth_oauthlib/flow.py", line 407, in run_local_server
    host, port, wsgi_app, handler_class=_WSGIRequestHandler)
  File "/usr/lib/python3.6/wsgiref/simple_server.py", line 153, in make_server
    server = server_class((host, port), handler_class)
  File "/usr/lib/python3.6/socketserver.py", line 453, in __init__
    self.server_bind()
  File "/usr/lib/python3.6/wsgiref/simple_server.py", line 50, in server_bind
    HTTPServer.server_bind(self)
  File "/usr/lib/python3.6/http/server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.6/socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use

See #353.  Using a different port blocks you, as the port 8080 is hard-coded into the whitelist of accepted callback_urls.
A suggested work-around (with credit to @Bento007 ): https://community.auth0.com/t/allowed-callback-urls-ending-with-a-wildcard/7626/2


/entrypoint.sh change

After rebuilding a few internal containers on the most recent dsuite/alpine-runit image, I wasn't able to start any container.  https://github.com/docker-suite/alpine-runit/commit/3c4395825980d6cb5b688667f97dde0dad1bdace#diff-6710c73f0c6b66edade17b5c6d99f6b1083f1e22ae612ae294cff9748a246d8fR35 changed the entrypoint to include tini -- - was that intentional? I've resolved the issue in my images by flipping the entrypoint back to what it was, so that runit gets the correct command.

My mistake.
However, I removed tini from the entrypoint as it is included in Docker itself since 1.13 and can be used with docker --init argument


Farmer kit problem

I have several problems with the installation of sensors on the raspberry, as it brings me error. But even if it does not give me error in the process of data streamer when I connect it to the pc on excell transmits only the time and ch1, moreover the data of ch1 are received as zeros

Hi @mdadamo89, I am happy to help but I will need a little more information.
The recommended and supported approach is to follow the build instructions here: https://aka.ms/fbfsbuildinstructions
Please make sure you have followed all of the directions. Once the Raspberry Pi, Grove Hat, and the sensors are assembled, then please follow the directions for Flashing the SD card in the Appendix (last section of the instructions).
At this point you should be able to see data in Data Streamer. The project is designed to be used with a custom workbook here:  https://aka.ms/FBFSWorkbook. You can also use a blank workbook to test it, but there is functionality built into the custom Excel workbook. The instructions assume that the Excel workbook is the UI for the Raspberry Pi.
If you are still getting errors, please detail the exact steps that you took so that I can try and reproduce the issue and help you with troubleshooting. Please include if and how you are connecting to the Raspberry Pi.

good evening! I performed all the steps he indicated to me, that is: I opened the file for assembling the Raspberry, then I  downloaded
-farmbeats-image-builder
-https://downloads.raspberrypi.org/imager/imager_latest.exe . Ho eseguito la procedura per l'installazione ho estratto la micro SD datl I performed the installation procedure and extracted the micro SD from the PC, then the micro SD was inserted into the Raspberry. I opened data streamer but it doesn't give me anything. the page is blank.

good evening! I performed all the steps he indicated to me, that is: I opened the file for assembling the Raspberry, then I  downloaded
-farmbeats-image-builder
-https://downloads.raspberrypi.org/imager/imager_latest.exe . Ho eseguito la procedura per l'installazione ho estratto la micro SD datl I performed the installation procedure and extracted the micro SD from the PC, then the micro SD was inserted into the Raspberry. I opened data streamer but it doesn't give me anything. the page is blank.

HI @mdadamo89, I have received your updates. Please respond here with a comment for continuity. Thanks.
I understand that you were able to successfully assemble the Raspberry Pi and sensors, and that you flashed the SD card correctly, but Data Streamer page was blank.
To check that the Raspberry Pi is connected to Data Streamer:

Be sure that Data Streamer can connect with the Raspberry Pi make sure that the Serial-TTL Cable wires are correctly connected to the Raspberry Pi. Verify with the diagrams in the instructions.
Make sure that the device is visible in Data Streamer, and then connect to it. You can read more about how to use Data Streamer here.
Once connected, click on the Start Data button to begin streaming data.

If you are having more issues with Data Streamer, please open a ticket: https://edusupport.microsoft.com/support?product_id=hacking_stem
I hope this helps.

good morning! the problem was in the "data streamer" settings. Once I followed the guide she gave me I was able to solve the problem. Thanks so much for the supporto

@mdadamo89 that is excellent news!


Reduce Logo Animation

Feedback that the little moving atomic particle animation on the O of the logo is distracting.

Particularly in settings like docs or in reading modes where it is a distraction to the user's task at hand. The animation is a nice easter egg in situations like the marketing pages, but it should not get in the way of page content.
Possible and simple ways to address this:

remove it
make it :hover only
slow it waaay down
remove it from 'task' situations like docs / longform articles

I think the :hover thing would be nice.

Closing this change was introduced awhile back.


[feature request] end session early with command invoked

Currently uairctl allows skipping to a next session but when it does so it seems not to invoke the command specified in the config. I am assuming this is by design and so I would like to ask if it would be possible to add another subcommand for uairctl, maybe a name "finish" would be good,  which would immediately complete the session with the command invoked.
Not only would it make some workflows slightly more flexible but I would have also appreciated it very much when I was integrating and testing uair with eww in my environment.
Besides that uair is already amazing, simple and powerful tool. I love it :heart:

Why not add commands before or after 'uairctl next' like 'uairctl next; echo 1 &' ? (plus, the way to run multiple commands in the background in one line in bash). Or you can make a script file to wrap the 'uairctl next' command.

I haven't thought about it. Yeah, it would work, the only downside is that now in my eww configuration directory I will be referencing scripts which I put into uair directory. That's not something terrible, it only looks tangled.
Thanks for help!

I have just realized that figuring out which session is being skipped at the moment and which script should run adds rather unnecessary complexity to the task so I think there is still some value in the feature request.

I originally thought there were only one or two different commands(corresponding to one or two different sessions) that needed to be executed after uairctl next. I came into the thinking stereotype that there were only two sessions named work and relax. If multiple different commands(in different sessions) need to be executed, it is better to add a new subcommand

Thanks for trying out uair. I'm glad you found it useful. finish command is now implemented in the main branch. Feel free to open any other bug reports or feature requests.


Error on running d31_scatter_correction.py

I tried running d31_scatter_correction.py but I always get the following error:
Traceback (most recent call last):
File "/home/giovanni/software/LEAP/demo_leapctype/d31_scatter_correction.py", line 178, in
g_dn = leapct_LR.down_sample_projections([1,downSampleFactor,downSampleFactor],g)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/giovanni/miniconda3/envs/pytorch/lib/python3.11/site-packages/leapctype.py", line 3223, in down_sample_projections
g_dn = self.down_sample(factors, g)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/giovanni/miniconda3/envs/pytorch/lib/python3.11/site-packages/leapctype.py", line 1422, in down_sample
self.libprojectors.down_sample(I, np.array(I.shape), I_dn, np.array(I_dn.shape), factors, True)
ctypes.ArgumentError: argument 2: TypeError: array must have data type int32
Additional info:

LEAP version 1.25
conda enviroment with pytorch installed.

@oooo114 also reported a similar problem in issue #94.  I made some changes and I believe this is fixed now.  Please pull from the champley_dev branch to get the changes.

Yep, you're correct; I forgot about those other instances.  I just push these changes to the champley_dev branch.


Add management of Projects to the admin area

TODO

[x] Implement test coverage for Projects
[x] Resolve issue with project slug uniqueness validation

This is looking good, @dylanwolff! Left a few minor comments but otherwise it looks good to get this thing merged?

Nice going, @dylanwolff. Let me know if you want me to help with merging this in today :)

Going to merge this now 👍


I want to watch YT channels from the start - help? 😔

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
👋 all,
Hope y'all OK!
I want to watch some YT channels from the start (i.e. chronologically). Some channels started 10 years ago so it's not practical to use the UI for this. It's also not practical to download 10 years worth of content when I could grab a small batch (e.g. 10 videos, 1GB, 2014-5) and repeat.
After a few hours researching and experimenting I tried various combinations of --playlist-start/end and --playlist-reverse (seems to be a lot of people complaining combining these flags is problematic 🤷) and then resorting back to --date-before/after - neither successful for my use case 😢
I suppose this issue is the closest I've got with research - technically a command with --date-before/after will work but, to be frank, there's zero chance I'm gonna wait for the command to call the YT API hundreds of times before the new batch of videos I want downloads 🥱
Examples/suggestions/tips appreciated..?
Yours hopefully
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

👋 https://github.com/ytdl-org/youtube-dl/issues/32962 - crossposted 🙏

Do you actually want to download the videos or do you just want the links? --playlist-reverse --flat-playlist --print-to-file webpage_url videourls.txt will write a list of video urls to the file videourls.txt
Note that it's not perfect because it will write shorts and livestreams (including past livestreams) at the top of the file. If that's an issue let me know and I'll come up with a different command

Thanks for reply
Videos please
Aside, thanks for links tip - will experiment with that to avoid the API calls until something better emerges 🤞
Hope to hear back
Cheers

--playlist-reverse is currently the only way afaik. Use --break-on-reject --datebefore DATE if you want to stop at a certain point in time.

👋 @bashonly,
Thanks for reply
I'm afraid your proposed solution doesn't work:
yt-dlp http://youtube.com/@cherdleys --break-on-reject --datebefore 20160101 --playlist-reverse
[youtube:tab] Extracting URL: http://youtube.com/@cherdleys
[youtube:tab] @cherdleys: Downloading webpage
[youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[youtube:tab] @cherdleys/shorts: Downloading webpage
[youtube:tab] Downloading as multiple playlists, separated by tabs. To download as a single playlist instead, pass https://www.youtube.com/playlist?list=UUPHeAtHSXnymNh8b_Kkj2rw
[download] Downloading playlist: Cherdleys
[youtube:tab] Playlist Cherdleys: Downloading 2 items of 2
[download] Downloading item 1 of 2
[download] Downloading playlist: Cherdleys - Shorts
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 1: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 2: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 3: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 4: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 5: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 6: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 7: Downloading API JSON
[youtube:tab] Playlist Cherdleys - Shorts: Downloading 381 items of 381
[download] Downloading item 1 of 381
[youtube] Extracting URL: https://www.youtube.com/shorts/UOI8tjaXsOo
[youtube] UOI8tjaXsOo: Downloading webpage
[youtube] UOI8tjaXsOo: Downloading ios player API JSON
[youtube] UOI8tjaXsOo: Downloading mweb player API JSON
[youtube] UOI8tjaXsOo: Downloading m3u8 information
[download] 2022-02-05 upload date is not in range 0001-01-01 to 2016-01-01
[info] Encountered a video that did not match filter, stopping due to --break-match-filter
Aborting remaining downloads
yt-dlp http://youtube.com/@cherdleys --datebefore 20160101 --playlist-reverse --break-on-reject
[youtube:tab] Extracting URL: http://youtube.com/@cherdleys
[youtube:tab] @cherdleys: Downloading webpage
[youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[youtube:tab] @cherdleys/shorts: Downloading webpage
[youtube:tab] Downloading as multiple playlists, separated by tabs. To download as a single playlist instead, pass https://www.youtube.com/playlist?list=UUPHeAtHSXnymNh8b_Kkj2rw
[download] Downloading playlist: Cherdleys
[youtube:tab] Playlist Cherdleys: Downloading 2 items of 2
[download] Downloading item 1 of 2
[download] Downloading playlist: Cherdleys - Shorts
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 1: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 2: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 3: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 4: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 5: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 6: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 7: Downloading API JSON
[youtube:tab] Playlist Cherdleys - Shorts: Downloading 381 items of 381
[download] Downloading item 1 of 381
[youtube] Extracting URL: https://www.youtube.com/shorts/UOI8tjaXsOo
[youtube] UOI8tjaXsOo: Downloading webpage
[youtube] UOI8tjaXsOo: Downloading ios player API JSON
[youtube] UOI8tjaXsOo: Downloading mweb player API JSON
[youtube] UOI8tjaXsOo: Downloading m3u8 information
[download] 2022-02-05 upload date is not in range 0001-01-01 to 2016-01-01
[info] Encountered a video that did not match filter, stopping due to --break-match-filter
Aborting remaining downloads
yt-dlp http://youtube.com/@cherdleys --playlist-reverse --break-on-reject --datebefore 20160101
[youtube:tab] Extracting URL: http://youtube.com/@cherdleys
[youtube:tab] @cherdleys: Downloading webpage
[youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[youtube:tab] @cherdleys/shorts: Downloading webpage
[youtube:tab] Downloading as multiple playlists, separated by tabs. To download as a single playlist instead, pass https://www.youtube.com/playlist?list=UUPHeAtHSXnymNh8b_Kkj2rw
[download] Downloading playlist: Cherdleys
[youtube:tab] Playlist Cherdleys: Downloading 2 items of 2
[download] Downloading item 1 of 2
[download] Downloading playlist: Cherdleys - Shorts
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 1: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 2: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 3: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 4: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 5: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 6: Downloading API JSON
[youtube:tab] UCPHeAtHSXnymNh8b_Kkj2rw page 7: Downloading API JSON
[youtube:tab] Playlist Cherdleys - Shorts: Downloading 381 items of 381
[download] Downloading item 1 of 381
[youtube] Extracting URL: https://www.youtube.com/shorts/UOI8tjaXsOo
[youtube] UOI8tjaXsOo: Downloading webpage
[youtube] UOI8tjaXsOo: Downloading ios player API JSON
[youtube] UOI8tjaXsOo: Downloading mweb player API JSON
[youtube] UOI8tjaXsOo: Downloading m3u8 information
[download] 2022-02-05 upload date is not in range 0001-01-01 to 2016-01-01
[info] Encountered a video that did not match filter, stopping due to --break-match-filter
Aborting remaining downloads

In case someone does have a solution, I will appreciate it if you'd leave the issue open - at least a little longer - for visibility
If you insist on closing the issue then it is possible to create some type of feature request from this - between the two repos I did see issues going back over a decade requesting a solution for this type of problem 🤯
Yours hopefully

pass https://youtube.com/@cherdleys/videos and http://youtube.com/@cherdleys/shorts isntead of http://youtube.com/@cherdleys

👋 @bashonly,
Ahh, that seems to do the trick 😊
Glad I created this issue
Hope it helps someone else too!
Kind thanks


Fix issue with stopping batcher gracefully

Required for all non-trivial PRs

[ ] Rebased/mergable
[ ] Tests pass
[ ] CHANGELOG.md updated
[ ] Sign CLA (if not already signed)

Required only if applicable
You can erase any checkboxes below this note if they are not applicable to your Pull Request.

[ ] InfluxQL Spec updated

This fixes the issue where Stop in batcher does not gracefully stop
the batcher go routine.

resubmitting


Have a default account for first setup

As a consumer of the dashboard, I want to be able to login to the dashboard on first setup.

This account should be marked as an admin account.


Where could i find the address?

In your sample, you use the function add_ip.write() to send data and add_ip.read() to receive data.There is a parameter in the function that i guess it the address of memory.So, i am wondering that where could i find the information of address.Looking forward to your reply!

Those addresses can be found in the output of Vivado HLS. There's a video with more specific detail available https://www.youtube.com/watch?v=Dupyek4NUoI

I have included the bitstream, tcl, and hwh file and receive this error when trying to access the register map:

AttributeError                            Traceback (most recent call last)
 in ()
----> 1 add_ip.register_map
AttributeError: 'DefaultIP' object has no attribute 'register_map'
the add_ip.write(0x10,4) works but I would like to use the registermap
thanks!

Which version of PYNQ are you running? The register map was only added in 2.4

I was using version 2.2. I recently upgraded to 2.4 and with the .hwh included everything worked fine. Thanks again!


Add dependent types

You need to give more information than that. Why should we add dependent types? They are a very comolex addition the language, and so we need a very good motivation for adding them. Would const-generics be enough of an extension? If so you can track that here #2000

RFC https://github.com/rust-lang/rfcs/pull/2000 is an accepted proposal for the addition of a measure of dependent typing for types dependent on compile-time values. Beyond that, we have no current plans to add run-time dependent typing.

Why should we add dependent types?

Because they’d let us enforce function contracts in compile time without turning everything into an optional and paying the runtime cost. For example, (/) takes a non-zero as its second argument, so passing unchecked input there should be a compile-time error (to convert an int into a non-zero int, you have to pass it though a check).
 Basically, dependent types together with optionals (Result) help us get rid of non-total functions entirely.

For example, (/) takes a non-zero as its second argument,

This is a bad example, as this can be done with normal types like NonZeroI32. I am aware of the nice things that dependent types can bring, but I don't think that it would be sufficiently more useful than const-generics (when that lands).
More to the point, what can you do with dependent types that you can't do with const-generics?

First, NonZeroI32 is deprecated since 1.26.0. Second, does it force you to add checks? Judging by the description, it’s just an axiom (a promise to the compiler), which is only an edge case (basically to encode some hardware contracts in MC), not what you’d want most of the time.

I am aware of the nice things that dependent types can bring

It’s not just “nice things”. It’s virtually the final solution to panics.

More to the point, what can you do with dependent types that you can't do with const-generics?

Can you use them to force the user of your function to check something about the arguments before passing them (unless they’re known at compile time)? For example, when dividing two numbers you got from IO? Or when addressing a vector by index, and both its size and the index depend on IO, can you force the caller to make sure the index is less than the size, without a runtime overhead?

https://doc.rust-lang.org/core/num/struct.NonZeroI32.html ? It doesn't say deprecated anywhere on that page.

Can you use them to force the user of your function to check something about the arguments before passing them (unless they’re known at compile time)? For example, when dividing two numbers you got from IO? Or when addressing a vector by index, and both its size and the index depend on IO, can you force the caller to make sure the index is less than the size, without a runtime overhead?

There is no way to both have checks and avoid runtime overhead. That simply doesn't make sense.

First, NonZeroI32 is deprecated since 1.26.0. Second, does it force you to add checks? Judging by the description, it’s just an axiom (a promise to the compiler), which is only an edge case (basically to encode some hardware contracts in MC), not what you’d want most of the time.

NonZeroI32 and friends were stabilized in 1.34.0, there is no plans to deprecate them. I'm not sure what you are refering to when you say they are deprecated in 1.26.0.

It’s not just “nice things”. It’s virtually the final solution to panics.

Yes, with dependent types you could get rid of all panics. But that's only if you want to add the immense annotation burden that comes along with dependent types. I don't know if this is a good tradeoff. I've looked into languages like Idris, which have dependent types as a first class item, and it works for them because the syntax of the Idris gets out of your way really fast. But Rust doesn't do this. Rust tries to annotate every important detail, and this means the annotation burden in Rust is far greater than other dependently typed languages.
You can get rid of all panics right now in Rust, by just having all fallible functions, but this has numerous other problems. But, I don't think getting rid of panics is a viable or even worthy goal. Panics exist for when things go horribly wrong, and there will always be a need for such tools.
When writing performance sensitive code, it is useful to put in debug_asserts everywhere you make an assumption, so that you can test those assumptions in debug mode, and they will be assumed in release mode. Such code wouldn't even think about dependent types, because it would force unnecessary checks that are unacceptable.
For code that is less concerned with performance, dependent types can help. But I don't know if they can help more than const generics. For example, with const-generics you can write bounded integers,
struct Int<const LOWER: i128, const UPPER: i128>(u128);

Later once we get more integrated const generics (in where clauses) we can do one step further.
trait IntInner {
    type Inner;
}

struct Int<const LOWER: i128, const UPPER: i128>(<Self as IntInner>::Inner);

impl<const LOWER: i128, const UPPER: i128> IntInner for Int<{LOWER}, {UPPER}>
where
    { UPPER - LOWER < (1 << 8) }
{
    type Inner = u8;
}

impl<const LOWER: i128, const UPPER: i128> IntInner for Int<{LOWER}, {UPPER}>
where
    { UPPER - LOWER >= (1 << 8) }
    { UPPER - LOWER < (1 << 16) }
{
    type Inner = u16;
}

/// ...

It may not look exactly like this, but this should be possible with extended const-generics
Now tell me, where does const-generics fall short for your use case?

There exist numerous languages for formal verification, but few gain any traction and much more work is needed before they become friendly.
An approach might be an optional type system extensions that avoid complicating or slowing down rustc itself, and need not be run for every build, so vaguely like procmacros but extracting much deeper information from type checking.. and thus chalk must come first.  I'd think type system extensions could reject otherwise valid rust programs but should not bypass rustc's existing type checking.  I've no idea if such type system extensions could only analyze the existing types, if they could suggest types like the bounds for Int above, or if they could even track additional data about bindings, almost like some value-level trait-like thing, aka real dependent types.
Anything like this should probably wait for chalk, but if someone wants to do a PhD around this topic then maybe chat with either the RustBelt project or Karthikeyan Bhargavan.

There is no way to both have checks and avoid runtime overhead. That simply doesn't make sense.

Yes, it does. There are 2 ways to call a non-total function with arguments unknown at compile time: to check the arguments beforehand or to make the function return an optional.
Sometimes the latter is better; it depends on the semantics of the function and on the way the arguments are checked. If it’s a part of what the function does anyway, no need to duplicate the work.
But often you can easily check if the arguments are correct, and calling the function with wrong ones makes no sense (as with division). In this case, returning an optional would introduce additional overhead compared to forcing the users of the function to do the checks. But they should do those checks anyway, even if the compiler can’t make them, so those only introduce overhead compared to unsafe code which shouldn’t exist.
Contracts also propagate. You don’t need to prove the same thing twice. And functions don’t just have preconditions, they can provide guarantees about their return values too, which could mean fewer checks for functions that use return values of other functions.

I'm not sure what you are referring to when you say they are deprecated in 1.26.0.

Sorry, Google directed me to a wrong page.

It does add a check if you use NonZeroI32::new

Hmm, it does look nice, provided rustc optimizes that optional away (by combining the check inside new and pattern-matching outside into one). I’m not sure it does though...

But that's only if you want to add the immense annotation burden that comes along with dependent types. I don't know if this is a good trade-off.

It’s not a trade-off, it’s additional expressiveness for free. Both the domain and the range of a function are already an essential part of its interface, it’s just that usually they’re only expressed in documentation or — worse — in programmer’s mind. Moving such things into the actual code and enforcing them statically is strictly better.
Unless you mean spelling out types everywhere... But Rust does have type deduction, right?..

Rust tries to annotate every important detail, and this means the annotation burden in Rust is far greater than other dependently typed languages.

Point taken. I don’t have an opinion on what is the proper solution here, because I’m a C++/Haskell programmer and I haven’t got time to learn Rust yet (I just fanboy over it in advance and really care about its development).

You can get rid of all panics right now in Rust, by just having all fallible functions

That would be the same thing but worse because no unwinding. What I’m talking about is getting rid of unplanned termination. All possible cases should be handled.

But, I don't think getting rid of panics is a viable or even worthy goal.

Yes, it is! If a panic happens, it usually means you forgot to check for something. It’s not something you can or should solve in runtime, it’s a design-time problem. That’s why, unlike C++, Rust doesn’t have catch (as far as I know).

Panics exist for when things go horribly wrong, and there will always be a need for such tools.

Sure, when you run out of memory or when a cosmic ray strikes the disk. When some externalities not expressed in the language violate your cozy abstract world, not when it’s your own mistake.

so that you can test those assumptions in debug mode, and they will be assumed in release mode

This is both tedious and unsafe because there are no guarantees. That’s actually another argument in favour of dependent types: to replace virgin debugging with chad static analysis. Math always beats empiricism if it’s realistically computable x)

Such code wouldn't even think about dependent types, because it would force unnecessary checks that are unacceptable.

It’s the opposite. Dependent types let you get rid of unnecessary checks because they propagate. They only require the checks you need anyway because you don’t know anything about IO (unless there are hardware contracts, but that’s what axioms are for).

For example, with const-generics you can write bounded integers

That’s awesome, we can port bounded::integer to Rust! Although, does Rust have some kind of opt-in implicit casts to allow widening the range automatically?..
Either way, it’s good but not enough.

Now tell me, where does const-generics fall short for your use case?

If I understand correctly, const generics are the Rust equivalent of non-type template parameters in C++. Those are powerful, but they’re not enough to implement full-on dependent types in any usable form, only special cases like bounded::integer.

There exist numerous languages for formal verification, but few gain any traction and much more work is needed before they become friendly.

Sure, it’s an area of active research, and I’m not saying dependent types should be added to Rust tomorrow. I just think they should be somewhere on the roadmap. Let Idris and Haskell explore the topic and then absorb the best of what they come up with.

An approach might be an optional type system extensions that avoid complicating or slowing down rustc itself, and need not be run for every build, so vaguely like procmacros but extracting much deeper information from type checking.. and thus chalk must come first. I'd think type system extensions could reject otherwise valid rust programs but should not bypass rustc's existing type checking.

Yeah, something like that. BTW, is it possible for rustc to not recompile individual functions that weren’t changed?

I've no idea if such type system extensions could only analyze the existing types, if they could suggest types like the bounds for Int above, or if they could even track additional data about bindings, almost like some value-level trait-like thing, aka real dependent types.

I’m not sure about the specifics either, although I have a few vague ideas.

Anything like this should probably wait for chalk, but if someone wants to do a PhD around this topic then maybe chat with either the RustBelt project or Karthikeyan Bhargavan.

Sounds tempting, but first I’d have to finish my bachelor’s degree and then get a master’s degree, and I’m not a fan of academic education x) And by the time online education inevitably takes over and they start giving out degrees through exams, somebody will already have done it.

For what it's worth, with a powerful enough type system you can sort of simulate dependent types, along the lines of Haskell's singletons.  Parts of it are possible in Rust as-is: I tried it once, but gave up after running into too many limitations.  But we could get a lot farther with some relatively modest language additions, things that are also useful for other purposes:

Trait-parametric polymorphism (ability to use traits as generic parameters)
Generic closures, plus
Expanded HRTBs, so a function can accept a generic closure as an argument (e.g. F: for<T> FnOnce(T))
(And const generics, but those are already in the works.)

If anyone wants dependent types, I suggest trying to get those features in first, to unlock experimentation. :)

It would be easier to start with refinement types as in Liquid Haskell, which are much more restricted than dependent types which can have arbitrary computation in the type (as I understand it... not an expert). Liquid Haskell, and a few other proof checking languages like F* and zz, cleverly avoid implementing lots of verification logic by generating a set of constraints which are passed to an SMT solver like z3.
With these systems you can do really nice things like specifying that a function takes two vectors which must be the same size. You can generally avoid runtime checks since the proofchecker can prove at compile time that the function will never be called with two differently-sized lists. And if it can't automatically prove that (this probably happens a lot), you have to add more annotations or conditional logic that allows the proof to succeed.
It might be possible to emulate Liquid Haskell's approach of extending Haskell with static annotations. I'm learning LH now and don't know remotely enough Rust to attempt something similar at the moment, but I might try it out in a couple of months. Call it Liquid Rust :laughing:

One case in which I think it could help is when memory sizes are involved.
Imagine an arbitrary piece of data with constant size. Let's say there is a dependent type Size for types with a constant size, where S is a value of usize. Size also implements a dependant type SizeAtMost for each S2 bigger than S.
Normally I would do runtime checking with size_of function somewhere to verify if the object I need to was small enough. But if I know the size of the data in advance, for example, if it is a constant message, I could skip that check. So I could have a function:
to_qr_code<T: SizeAtMost<{QR_SIZE}>>(obj: T) -> QrCode {
...
}
which would not need an option or result to implement for this case. Whereas if it size was unknown, or dependent types where not available, I would need runtime checking with Results and such:
try_to_qr_code(obj: T) -> Result<QrCode, QrError> {
... if size_of(obj) > QR_SIZE {
Return Err(QrError::ObjectTooBig)
}
...
}

That would also help use dynamic memory less in general.

Question: Is the following a form of "dependent types", and is the weaker form possible in Rust today?
Suppose I have:
pub struct Foo<X, Y, Z> {
    // Here I can use X, Y, Z as types:
    x: X, y: Y, z: Z
}

Then I can:
impl<X, Y, Z> Foo<X, Y, Z> {
    // Here I can also use X Y Z as types...
    fn set_x(&mut self, x: X) { self.x = X; }
}

Then suppose I have:
type MyFoo = Foo<u8, u16, u32>;

fn do_my_foo(my_foo: MyFoo) {
    // Here I can't use X, Y, Z as types.
    // What I want to write:
    // x: MyFoo::X = 0;
    // What I have to write:
    x: u8 = 0;

    my_foo.set(x);
}

This would be a very weak form of dependent types, I guess? Is this possible in Rust today, somehow? If not, has this been suggested/discussed at all, or is this seen as a special case of the much more complex dependent types issue and is not worth consideration on its own?
Speaking of the more general case, then in C++ templates, it is possible to manually add type aliases inside a struct (almost anywhere, really). This allows not only capturing the type parameters but also derived ("dependent") types. Rust-ish equivalent might look like:
pub struct Bar<Y, Z> { ... }
pub struct Foo<X, Y, Z> {
type X = X;
type Bar = Bar<Y, Z>;
x: X, y: Y, z: Z
}
type MyFoo = Foo<u8, u16, u32>;
let x: MyFoo::X = 0;
let bar: MyFoo::Bar = ...;
Is something along these lines being considered?

This is not dependent types.

It seems the recent paper and presentation by @cfallin might have something to contribute to this discussion. The motivating case is outlined in that paper. From my perspective, the use case for dependent types is to statically associate handles for operating on a resource with that resource (a specific example: a handle to a DMA operation in which the operation can only take place on a given device).

The main use case for dependent types is getting rid of panics and infinite unproductive recursion.

related:
https://github.com/magmide/magmide


Method "isHierarchical" of "org.dspace.content.authority.DSpaceControlledVocabulary.java" should not always return true

Describe the bug
The method "isHierarchical" of " org.dspace.content.authority.DSpaceControlledVocabulary.java" always returns the value true. It should instead return the "storeHierarchy" value configured for the actual controlled vocabulary.
To Reproduce
view source code
Expected behavior
return "storeHierarchy" field instead of true.
Related work
Link to any related tickets or PRs here.

Hi @mahnkong
thanks for reaching out. The storeHierarchy attribute has a different purpose than the isHierarchical method.
The first is used to determine if only the leaf of the vocabulary need to stored as value when selected or the whole path, the second is used to determine if an authority is hierarchical or not (i.e. as a tree structure) and indeed the DSpaceControlledVocabulary is always hierarchical as it suits specifically this purpose.
I hope this clarify, if you hit an unexpected functional behaviour please tell us more about your goals, the configuration that you have applied and what goes wrong


(enahcement) Can you auto loop a video clip?

Hi,
I have short 3s videos that I would like to autoloop / autoplay. Is the auto loop part already possible?
thanks!

Yep - just add the loop attribute:
https://developer.mozilla.org/en/docs/Web/HTML/Element/video

Thanks for the lightning fast answer!


fix responsive contributor panel

I tried to fix the responsive design of the contributor panel, I await your opinions.

hey emmavz89,
Thanks for making it more responsive but doing it this way will make everything squash together on opening and closing and makes it jump, can you try and fix the jumping so its a more smooth transition before we merge, thanks 🙂

I'm going to try to do it, I don't like that transition very much either, I don't want to touch the JavaScript document a lot because I'm just starting to study it, but we'll see what elegant solution we can find.

@DavidMatthewFraser
Yeah it was because the width was set to 400px so any phones with less width than 400px it would be to big for the page, the easiest way around this would be to give the panel a max-width of 400px and width of 100% that way it will shrink when the screen goes bellow 400px.
I still like what @EmmaVZ89 has done tho it looks pretty cool and its good to try different things out and experiment, best way to learn i think

What I fix (or try xD) is that the panel doesn't constantly occupy a space. Otherwise when the panel was hidden it kept occupying the space of its assigned width (400px). Then I changed the transition from top to bottom because from side to side the content looked somewhat tight as SyntappZ told me.
I wouldn't know what to say about the response time, the first time you press the button it takes a while but then it normalizes. It must be by taking the data from our profiles ???

@EmmaVZ89 yeah it has to fetch data from each persons github so about 10 requests at once so it takes a while on first load, i think i might add a loading screen at the start until all data is loaded, or someone else could make one if they want

@SyntappZ  I do not think it is necessary, the wait only happens when one touches the button just when entering the page, maybe we are talking about 2 seconds, at least that is what I noticed.

For now should we make the width of panel 100% for screens less than 400px or even like 500px?

@DavidMatthewFraser yeah make it max-width 400px so it scales down for mobile

@DavidMatthewFraser  I think 400px would be enough.


Bootstrap-4 and Material Design for AdminLTE?

Any new project or branch for bootstrap-4 AdminLTE?
Any near future planning to upgrade?

I wish I had the time to implement both Material Design and Bootstrap 4. But for the time being, I am working on Bootstrap 4 version.
Thanks!

@almasaeed2010 Nice job with AdminLTE, really love the theme and use it for many projects.
When can we can some good version with Bootstrap 4 support? Excited to start using it.
Thanks again for AdminLTE, best ever theme.

Any news on admilte3??? BTW, this project really rocks!


CMS Redirect

Hello,
I've written a basic exception based redirect for usage inside of a django cms plugin. It requires a middleware to be added, but in testing does redirect successfully.
I realize that this may not be the ideal solution, so I understand if you don't want it, but I just thought I would share. :)
Jeremy

I like the redirect_url you added, but I'm not sure about the middleware due to the hackishness of this approach. Could you change this slightly and remove the notion of cms from process_form?
In general I think the cms plugin should raise the exception if process_form returns a HttpResponseRedirect instance.


Remember North on top setting

In the past, the map would automatically rotate according to the compass, but at least it would remember for some time if I tapped the compass icon. Now that's gone, and it's super inconvenient to use the app with the map constantly rotating.
Please provide an option to disable this behaviour.
Thanks!

Hey there, I noticed there is a setting called "Orientation Tracking" in my version. When I disable that it seems to stop the automatic rotation. Does this for work you?

Only temporarily. Each time I press the "recenter the map" button in the right bottom corner, it starts rotating the map again.


Integrated Portuguese vocabulary in Sentimenter and added some tests.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 87.273%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
9384

Relevant Lines:
10383

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 87.28%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
9385

Relevant Lines:
10383

💛  - Coveralls