Feature request: search without filtering the list

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux
[x] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[x] zsh
[ ] fish

Problem / Steps to reproduce
I'm finding fzf extremely helpful for searching git history in log graph: https://git.tsundere.moe/Frederick888/frederick-settings/blob/9d7e1286a3616648eedea56e08160a84752b8cfc/.gitconfig#L20-68
However often after finding the commits, I'd also like to know their positions in the log graph. Currently what I have to do is copying the commit hash then open a git lg (also in the linked .gitconfig above) to locate it.
So I'm wondering if it's possible to search without filtering the list, where it:

still does searching & highlighting and jumps to the first hit automatically
but the list itself doesn't get filtered, somewhat like a pager with fuzzy search
updates the counter as usual to show number of hits
e.g. Ctrl-j/k to jump to next/previous hit

I understand that I can use gv.vim + fzf buffer lines + quick fix window to achieve this, but it'd be nice to achieve this without vim.

Here's my suggestion.

execute-expand(prog {+1}) could expand the standard output of a command into a new fzf bind command.

prog scans the entire list and finds the index of a relevant item and prints jump(index).

jump(index) jumps to index in fzf entries.

@crocket I'm afraid that'll be a little inefficient? In my case the external program would basically be something that, every time when it gets called, regenerate the log graph with line numbers, feed it to fzf --filter={q}, search for {+1} (and it may or may not be unique), find next/previous line number, finally prints a jump(i). Of course the external program can do some caching on its own, but that sounds nontrivial to me. And btw this still doesn't solve the counter issue unless there's another command for that and the program is allowed to print out multiple commands.
And actually if this execute-expand is used without --disabled, the index line may not be visible; if index is the index of currently visible lines, the external program would almost always need to call fzf first to make sure it doesn't print out an out-of-range number.
So I think execute-expand and jump are cool ideas, but it'll be much better if fzf still does the filtering, and then we can have new placeholders, e.g. {l} for the whole currently visible list, {i} for space-separated indices (relative to {l}) of matching lines, for execute-expand.

Do you understand what {+1} is?

@crocket Hmmm...?
From fzf manpage:

A placeholder expression starting with + flag will be replaced to the space-separated list of the selected lines (or the current line if no selection was made) individually quoted.

I gave it a shot:
for i in {0..100}; do echo "$i: this is line $i"; done | fzf --multi --preview='cat << EOF
{+}
EOF
'

(current line if nothing's selected)

(selected lines)

And {+1}:
for i in {0..100}; do echo "$i: this is line $i"; done | fzf --multi --preview='cat << EOF
{+1}
EOF
'

Am I missing something here?

I think you understand it.
What do you think is going to be more efficien than execute-expand and jump?

@crocket Still, I think execute-expand and jump are cool ideas, but don't help too much in my case.
You can try out my use case mentioned in the issue description by adding my git aliases to your ~/.gitconfig. Here's a screenshot:

As you see, fzf (upper pane) can help me find a commit, e.g. eaa413c, but if I then want to know its position in the log graph, which branch it's in, when the branch was merged, what commits come before/after it, I have to search it in the bottom pane (git lg in my .gitconfig).
So I'd like the list in fzf to be left unfiltered, but still it updates the counter and highlights my query in matching lines. Then when I Ctrl-j/k, it jumps among the matching commits/lines currently shown in my fzf screenshot. And perhaps instead of jump(index), something like jump-match(0) jump-match(+1) jump-match(-1) would work better for me.
Hope this clarifies what I need.

@crocket And by the way, as I mentioned this can be done in vim using gv.vim:

(I can :cn :cp etc)

Wouldn't it be easier to assign a keyboard shorcut to a preview command that shows what you want to see?

I suggest two new commands.

set-search

sets search text.

search-next

Prompts for a search text if it isn't already set.
If search text is already set, jump to the next match.

search-prev

Prompts for a search text if it isn't already set.
If search text is already set, jump to the previous match.

Elegant solution would be:
git log --oneline | fzf.exe --preview "git log --oneline" --preview-window "+{n}-1/2"
but the following also works:
git log --oneline | nl | fzf.exe --preview "git log --oneline" --preview-window "+{1}-1/2"
You can fuzzy search as usual, but the preview window will show your current item with full context.

I would also like a feature like this. I would love to use fzf to do incremental search within a kitty terminal. I'm currently using
fzf --ansi --tac --no-sort --no-mouse --exact --extended -i

When searching, this filters the results. That's helpful in finding matching lines, but I want to see the context of those lines. Being able to search without filtering would be incredibly useful for this kind of use-case.

You might want to try the new track action as suggested in https://github.com/junegunn/fzf/blob/master/CHANGELOG.md#0400

That does help, but it still requires you to delete the query string which isn't ideal. Sometimes you might actually be looking for something that spans multiple lines, for example.

Additionally, a preview window doesn't really help in this case since the underlying is from STDIN and can't be regenerated. I could wrap the whole thing by writing to a tempfile but that's frankly kind of awful.


Recreating child collection fails to update

I'm mapping DTOs to entities with child collections. The problem is mapper I'm using doesn't operate on an existing collection, but creates a new collection and copies values from old collection. How can I solve it? I was looking at ChangeTracker.TrackGraph but it doesn't seem to work.
https://stackoverflow.com/questions/45590265/automapper-confuses-changetracker
(I don't use AutoMapper though)
Exception message: Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> Npgsql.PostgresException: 23505: duplicate key value violates unique constraint "PK_ProductBarcodes"

Steps to reproduce
public class Order
{
    public int Id { get; set; }
    public ICollection<Product> Products { get; set; }
}

public class OrderDTO
{
    public int Id { get; set; }
    public ICollection<ProductDTO> Products { get; set; }
}

// Code

var order = DbSet.Find(id);
// assigns new collection to Products, Products are probably untracked now...
orderDto.Map(order);

DbContext.Update(order);
DbContext.SaveChanges();

Further technical details
EF Core version: 2.1.1
Database Provider: Npgsql.EntityFrameworkCore.PostgreSQL
Operating system: Windows 10
IDE: Visual Studio 2017 15.7.6

@Thorgard It's hard to know for sure with just the snippets posted above, but my guess is that the new collection of Products is being put into the Added state and hence EF attempts to insert them all again. There are several different ways of dealing with disconnected entities like this and which is appropriate for you depends on exactly what you are trying to do. The documentation for working with disconnected entities will hopefully point you in the right direction.

@ajcvickers thanks. I solved it by eager loading all navigation properties. This way changes are tracked. Not sure if this is the best solution for now but it does the trick.


GUVNOR-2621: DataModelOracle: Does not handle annotations with member properties of type Class e.g. @XmlType

See https://issues.jboss.org/browse/GUVNOR-2621
The solution contained in this PR is to use the toString() representation of any non-portable values.
Class on the client has very little use, as it cannot be instantiated. I tested with drools-wb-webapp and Data Modeller and rules (with, for example, EVENTS) continue to work fine.. All tests pass (I had to change two assertions from  Role.Type.EVENT to "EVENT" however we do not use this to determine whether a Type is an event).

@pefernan @wmedvede Could you please review?

@manstis looks good to me.
+1

@csadilek Please do not merge yet; I want to see how your Errai fix (for marshaling Class) may affect this first. Thanks.


Filtering turns on for 2h only

Hey!
as i discovered that original intex app scheduling was somewhat flaky (sometimes it worked other times not) i decided to implement scheduling of filter running thrugh my local HA.
However i have noticed that sending ON command for filtering turns it on for 2 hours and it shuts off automatically after that (the display shows 02h when sending filter on command).
in contrast turning filtering on the control panel offers 2,4 or 6h running time.
Is it possible that there is also different remote command for running time and could be implemented?
thx

Hi @TRIROG
This issue is a duplicate for #16.
I am sorry, but we cannot change this behavior, as it reproduces the official Intex app action.
It could be different commands for runtime filtering, but we don't know of any.
I will close this issue, but don't hesitate to reopen it if you identify such a command.
Regards, Mathieu.


Boot2docker is deprecated. Need to Switch to Docker Machine

https://github.com/boot2docker/osx-installer/releases.  We need to switch to using the new recommended vm for docker - Docker Machine

The installer is officially deprecated in favor of Toolbox. The status of the projects remains as it was before, boot2docker is on the way out, Machine is replacing it but is still currently "in beta". https://docs.docker.com/machine/
Closing this in favor of #418 which is already covering moving to Machine.


Evolution suggestion: have wrap-redirects store a vector of traversed uri in the response

add a key like :trace-redirects in the response containing the ordered list of traversed uris. This would allow clients to know what was the final uri fetched more easily than now (I think the only way is to set :save-request? and check the url inside the req). It could also be very useful for caching purpose (knowing all the uris which are equivalent to the terminal one).
If you're interested, I can write the patch.

Excellent, I've added you as a contributor :)


Fix firstRange and lastRange implementation in DataProtocol

firstRange did not find needle if at last index of haystack.
lastRange was fully broken and crashed.

Hopefully I got it right this time

cc @phausler: would you be the right person to review?

@swift-ci test

#2499 will fix the same bug(SR-10689).
Who would decide which PR should be chosen?

Oh, geez, this fell through the cracks while I am Away On Adventures.
@YOCKOW is your cherry-pick on the main branch of this repository already?

And if so: is @Frizlab's patch fixing a different issue than that?

I'm happy to take this patch if it's needed.

@millenomi
I believe #2499 is ready to be merged into main branch because:

It has been open since Sep 2019.
The last tests have passed all.
It has no conflicts with the main branch.
(As above,) The same implementation with it for SDK Overlay was already merged.

@Frizlab's patch (this PR) seems to be fixing the same issue.

Personally I don’t care which PR is merged as long as the issue is fixed.

@swift-ci test

FYI: https://github.com/apple/swift-corelibs-foundation/pull/2499 was merged into main. The issue (SR-10689) is fixed.

Closing as all tests introduced in this PR now pass with the merging of #2499.


Layout/RescueEnsureAlignment issue with nested begin

Looks similar to #6433
Expected behavior
No error emitted
Actual behavior
Cop expects rescue to be aligned with begin
Steps to reproduce the problem
def some_method
  @ivar ||= begin
     1
  rescue
    2
  end
end

RuboCop version
Include the output of rubocop -V or bundle exec rubocop -V if using Bundler. Here's an example:
$ [bundle exec] rubocop -V
0.61.1 (using Parser <IP_ADDRESS>, running on ruby 2.5.1 x86_64-darwin17)

I believe this cop is working as intended.  Hope that helps!

Tests improved by https://github.com/rubocop-hq/rubocop/pull/6606

Hm... so the following code while being contrived and generally not good is perfectly fine with rubocop
case something
when something_else
  whatever = case nested
  when no_matter
    ret
  end
end

the nested when is not required to be placed relative to outer indentations
why is rescue different then?

@dreyks Likely an oversight.
Generally some alignment cops have configurable styles to allow one of the two common styles of alignment, but this is not one of them (yet). I guess someone can tackle this down the road.

ok cool. I might look into it if I have some spare time

Here after upgrading from 0.58 to 0.61, as this cop triggered many new failures for previously allowed syntax:
result = begin
  # do something
rescue
  # do something else
end

Since this was previously valid, and since a similar format is allowed for Ruby 2.5 do/rescue blocks (per https://github.com/rubocop-hq/rubocop/pull/6437), I'll also put in a vote for either loosening or parameterizing this.

Also, FWIW, I'm guessing you can close this in favor of https://github.com/rubocop-hq/rubocop/issues/6254, which seems like one of the more popular threads for this issue/request.

Closing as duplicate of #6254. Thanks @oehlschl! 🙇


What‘s wrong with the command ordhook scan blocks<PHONE_NUMBER>53 --mainnet

I waited for this command for some time, with no result.
And I run wget https://archive.hiro.so/mainnet/chainhooks/hord.sqlite.gz, which shows that 404

Anyone help?

I fix it by modifying the code, tar dir is https://archive.hiro.so/mainnet/ordhook/.
const DEFAULT_MAINNET_ORDINALS_SQLITE_ARCHIVE: &str =
    "https://archive.hiro.so/mainnet/ordhook/mainnet-ordhook-sqlite-latest";


Remove dispatcher dependency from filesystem

Signed-off-by: Sotiris Nanopoulos<EMAIL_ADDRESS>Commit Message:
Remove unused dependency from filesystem
Risk Level: Low
Testing:
Running the tests on CI
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

I have only validated the src path locally, need to validate that this does not break test builds

/retest


feat(transport): Make service router independent from transport

Allows users to use the service router independent from transport feature.

Added a change which makes Routes::prepare public.


java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations.

I'm still getting this Exception in Android 6.0. The App works Fine on other Devices.
[java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations. 	at android.os.Parcel.readException(Parcel.java:1608) 	at android.os.Parcel.readException(Parcel.java:1561) 	at com.google.android.gms.location.internal.zzi$zza$zza.zza(Unknown Source) 	at com.google.android.gms.location.internal.zzk.zza(Unknown Source) 	at com.google.android.gms.location.internal.zzl.zza(Unknown Source) 	at com.google.android.gms.location.internal.zzd$1.zza(Unknown Source) 	at com.google.android.gms.location.internal.zzd$1.zza(Unknown Source) 	at com.google.android.gms.internal.zzlx$zza.zzb(Unknown Source) 	at com.google.android.gms.internal.zzmd.zza(Unknown Source) 	at com.google.android.gms.internal.zzmd.zzb(Unknown Source) 	at com.google.android.gms.internal.zzmi.zzb(Unknown Source) 	at com.google.android.gms.internal.zzmg.zzb(Unknown Source) 	at com.google.android.gms.location.internal.zzd.requestLocationUpdates(Unknown Source) 	at com.github.akashandroid90.googlesupport.location.AppLocationFragment.requestLocationUpdates(AppLocationFragment.java:231) 	at com.github.akashandroid90.googlesupport.location.AppLocationFragment.access$000(AppLocationFragment.java:31) 	at com.github.akashandroid90.googlesupport.location.AppLocationFragment$1.onResult(AppLocationFragment.java:124) 	at com.github.akashandroid90.googlesupport.location.AppLocationFragment$1.onResult(AppLocationFragment.java:114) 	at com.google.android.gms.internal.zzly$zza.zzb(Unknown Source) 	at com.google.android.gms.internal.zzly$zza.handleMessage(Unknown Source) 	at android.os.Handler.dispatchMessage(Handler.java:102) 	at android.os.Looper.loop(Looper.java:168) 	at android.app.ActivityThread.main(ActivityThread.java:5845) 	at java.lang.reflect.Method.invoke(Native Method) 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)](url)

Thanks. We will check it out and update it as soon as possible. We just need to confirm that you have these permission in manifest or not.

These are the permissions Included in the App
`

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />`

we have fix issue but not done with testing due to lack of resources. For that i would like ask you a favor, update library version in gradle and integrate it. And provide your feedback.

It's Working. Thanks a Lot


Bedrock Converse API integration

Integrate AWS Bedrock Converse API into Haystack
Background
AWS Bedrock released earlier this year their new converse API that aims to standardize their api calls to their models.
Objective
Integrate the AWS Bedrock Converse API into the Haystack integration library to allow users to leverage AWS Bedrock converse within their Haystack pipelines, paving the way potentially for easier agent development and multimodal integration.
Proposed Features

Add a new BedrockConversationGenerator node in Haystack integrations.
Support easy tool calling with some new classes to ease the process of tools definition and calling.
Support streaming responses from the Bedrock Converse API.
Implement error handling and retries for API calls.

Implementation Details

Use the AWS SDK for Python (Boto3) to interact with the Bedrock Converse API.
Follow Haystack's node implementation guidelines for consistency.

Resources

AWS Bedrock Converse Documentation
Model/Features compatibility

Alternatives
This could also be a feature for the existing AmazonBedrock generators instead of a new one.

Currently working on it

Currently working on it

Following on this, it will help a lot with tool use across all AWS Bedrock models with this unified API

@vblagoje Related issue: https://github.com/deepset-ai/haystack-core-integrations/issues/1229

Completed with https://github.com/deepset-ai/haystack-core-integrations/pull/1219
https://pypi.org/project/amazon-bedrock-haystack/ v2.0.0 released


Question: Have a project idea - How can I start?

@florinpop17
Hi there 👋!
I have a project idea about the Tic-Tac-Toe game and I want to add that here as well. As I am new to the repo just needed some little guidance about how can I contribute.
I can add that project to the Beginner folder of projects. Also, I have created that web app so I have a good example to show that app as an example.
Just had a few queries. Firstly, is this idea okay to work on? kindly please let me know will this idea be accepted in HacktoberFest because I have found this repo under the HacktoberFest topic.
Regards

Hi @sarmadhamdani02 ! I just passed by this project and it seems abandoned since there are tons of PR and no recent commits sadly. I'm also in HacktoberFest 😄 Cheers

Thank you so much for the response @f88083 🙏
Well, I was also thinking the same but decided to give it a try 😅. With some time left before October 1st, I'm on the hunt for some ideal projects to contribute to. 😃
I wish you the absolute best on your Hacktoberfest journey! 😊

@sarmadhamdani02 I just found this interesting activity today and started to look at the projects that I can probably contribute in. Anyway, all the best 🥇


"Sub-page" Sticky Components

This ticket is specifically for discussion of supporting <Sticky> elements attached to in-document scrollable elements.
As an example of such a case:

<StickyContainer><Sticky>...</Sticky></StickyContainer>

There are two ways to interpret the expectation in this case:

When <Sticky> is scrolled to the top of the scrollable element, it sticks to the top of the window.
When <Sticky> is scrolled to the top of the scrollable element, it sticks to the top of the element.

Let's leave the first interpretation aside for now, since it's unlikely to be a useful one.  This leaves three cases for us to consider.

Sticking to a scrollable element outside the StickyContainer.

This is most similar to the existing behavior.

Sticking to a scrollable element inside the StickyContainer.
Sticking to a scrollable StickyContainer.

Catch 1 (demonstrated here) – scroll events don't propagate.  This implies that the only way to intercept contained scroll events is to subscribe to the scrollable element, which further implies that automagically subscribing to the correct scrollable (non-StickyContainer) element is either expensive, unreliable, or impossible.
Possible Solution 1.A – we can solve this problem by requiring the user to supply a prop identifying the scrollable element to watch, but sharp edge cases abound.
Possible Solution 1.B – we can restrict scrollable elements we'll respect to StickyContainer instances (or possibly a ScrollableStickyContainer subclass).
Catch 2 – position: fixed (which is used for all of our low-jank positioning) cannot be contained by scrollable elements.  This would require us to implement a separate positioning computation for non-window containers.
Possible Solution 2.A – we can require the scrollable element to have position, and use a position: absolute based position calculation.
Possible Solution 2.B – we can recalculate a screen-based positioning based on the watched element when appropriate.
Catch 3 – StickyContainers are designed to be nested, so that more deeply nested Sticky elements will stick to one another (a la the timeline example).  This is accomplished by StickyContainers subscribing to data from their ancestors about other sticky elements.  StickyContainers being used within a scrollable element context MUST NOT inherit that data.
Possible Solution 3.A – we use the presence of the prop identifying the scrollable element as a sentinel for when we should avoid subscribing to ancestor data.
Possible Solution 3.B – we use a ScrollableStickyContainer subclass as the data subscription boundary.

This may not represent a complete list of the known concerns or possible solutions, but it seems like one potential solution for solving the general "sub-page" problem might look like this:
<StickyContainer>
  ...
  <Sticky key="first">
    I listen to `window`
    I stick to `window`
  </Sticky>
  ...
  <StickyContainer>
    ...
    <Sticky key="second">
      I listen to `window`
      I stick to "first"
    </Sticky>
    ...
    <ScrollableStickyContainer key="container">
      <Sticky key="inner">
        I listen to "container"
        I stick to "container"
      </Sticky>
      ...
      <StickyContainer>
        <Sticky key="fourth">
          I listen to "container"
          I stick to "inner"
        </Sticky>
      </StickyContainer>
    </ScrollableStickyContainer>
  </StickyContainer>
</StickyContainer>

To those who are interested in this feature, does this seem like an acceptable solution?

Related to #50, #61, and #79.

Awesome writeup! Here are my votes, FWIW:
1.B with ScrollableStickyContainer. I'm thinking that's the more backward compatible route?
2. No opinion, not sure of the implications of either tbh.
3.B. Seems to get both 1 and 3 in the same effort?
Thanks!

I don't view 1.A and 1.B as wildly incompatible, but I feel like 1.B is easier to explain and understand.  The biggest difference between the options is flexibility, but if option 1.B were acceptably flexible, it's probably preferable.
As far as Catch 2 goes, 2.A is simpler to implement and understand, but again, restricts the styles that can be applied to the scrollable container (specifically, not position: static).  2.B requires us to calculate position based on container scroll and all parent container scrolls and window scrolls ... which isn't terribly fun.
3.A really only works with 1.A, and 3.B really only works with 1.B.
This is far from a polished sample, but I spent a little time this evening hacking to investigate the performance characteristics.  This implements a solution around {1,2,3}.B without much error bounds checking, and without completing the "stacking" of Sticky components.
It also differentiates between Sticky and InlineSticky components, which is more about being lazy than an expected implementation.
I will likely spend a little more time hacking on this example as time allows...
http://codepen.io/anon/pen/rLVOoE

Awesome, when will achieve?

+1

A little note about the "fixed" issue, a little while we rolled out a simpler version of Sticky and by accident I ran into the fact that you can nest fixed elements in relation to each other not the window with just CSS, when you apply any 3rd transformation on the parent , it's children are now on a coordinate system based on the parent, so the window width now becomes the parent width, I looked this up to make sure it's not a bug and turns out the browsers implemented it this way on purpose. So for example:
Window with a small chat box container inside of it, this chat box is position fixed to the bottom right, now let's say you want to have a navbar fixed to the top of that chat box container, if you do top:0, width 100% , it as expected will be at the top of the window nowhere near the chat box, however if you apply for example a translateY(0) on the chatbox, now the chat navbar instead will assume the "window" is the width of the chatbox , and top:0 now becomes the top of the chatbox. Just something cool I ran into by accident and have been using it situationally since .

How unfortunate.
So if by any chance you're using Material Design Lite, which uses position:absolute on its most outer layer .mdl-layout__container (being added by their js), then react-sticky is quite unusable at the moment. And i guess MDL is not the only one.

no longer relevant as of 6.x


Yet another fix suggestion for stream management and media direction change on re-invites

Issues fixed with the patch:

on re-invite setDescription() change the constraints  in unexpected manner, and this leads to wrong constraints set  on subsequent re-invites.
To repeat: establish a call both with video and audio, change the constraints (disable video for example),  call the reinvite(). Then,  change constraints again (enable video,  disable audio) and call reinvite(). Resulting constraints on second reinvite  will be different from expected.
Proposed fix: remove constraints handling from setDescription()

on  re-invite, there are multiple media related artefacts (choppy video/audio, pixelated video).
To repeat: establish a call with both video/audio, then run few subsequent re-invites disabling/enabling video. Video will become choppy,  or even fail to start (tested on latest Chrome, Win10)
Proposed fix: do the removeTrack() for each sender after the new media were acquired, but before addTtrack() was called.

I see what you are saying with the constraints. I think the expected behavior here should be that if constraints are provided we use those, otherwise use the previously used constraints. Each time new constraints are passed the session descriptions handler's constraints should get overridden. The idea here being that you only need to provide constraints once per call and that all subsequent calls into the session description handler can use the same constraints unless overridden.
I think the second change is good.

I think that this also covers #541 in a more complete manner. If we can get this into SIP.js, I would close the other PR in favor of this one.


able to pass react-router create options

The problem was onAbort wasn't being handled server-side. This allows you to pass the Router.create methods.
Checkout
http://rackt.github.io/react-router/#Router.create
https://github.com/rackt/react-router/issues/947

can someone take a look at this?

@samsel can you take another look at this please :)

This is a problem for me too, I have a React component that calls redirect in willTransitionTo() and it fails because of unhandled abort. The "solution" is to have an onAbort listener (server side) that calls res.redirect.  I am doing this right now:
    try {
      if (this.useRouter) {
        createOptions.onAbort = function(abortReason) {
          var e = {
            name: 'AbortTransition',
            message: 'transition was aborted',
            abortReason: abortReason
          };
          done(e);
        };
        // change the `location` property for this render lifecycle
        createOptions.location = thing;
        var router = Router.create(createOptions);

and then in my server.js:
    res.render(req.url, data, function(err, html) {
      if (err) {
        if (err.name === 'AbortTransition') {
          let reason = err.abortReason.constructor.name;
          if (reason === 'Redirect') {
            console.log("got redirect");
            res.redirect(err.abortReason.to);
          }
        }
        // handle the other errors
      } else {
        res.end(html);
      }
    });

This all feels really ugly, though it works.

@andytompkins as of v2.x of react-engine, you can pass all options that are known to react-router. Can't we pass in a onAbort handler directly?
http://rackt.github.io/react-router/#Router.create

@samsel The problem with that is at the time I configure react-engine I am not in a place where I have a response object, and the onAbort handler needs to be able to call res.redirect.

@andytompkins @samsel you can't really decouple the need of res because you need to redirect onAbort.

@sherodtaylor @andytompkins I am closing this as we support react-router 1.x with redirects etc..
If you still want to pursue bringing in redirect support for react-engine v1 and v2. can you open a different PR?
https://github.com/paypal/react-engine#handling-redirects-and-route-not-found-errors-on-the-server-side
Thanks


Have a basic Sender CRM setup working

parallels existing Receiver CRM system
follows our 5 or so basic steps (with better names):   Pre-Kickoff, Kickoff held, Customer has Staging Key, Customer in Training in Prod, Customer fully in Prod.
has some kind of quick summary view or thermometer chart.
is readily accessible

Currently being tracked in Sharepoint: https://cdc-my.sharepoint.com/:x:/g/personal/rdz8_cdc_gov/EZQLc0BV5q9GrAt40HAEIfEB715kbdY2DdSlLBlQ0PY1BA?email=qop5%40cdc.gov&e=bL0zaJ


Use python3 in mapviz_tile_loader shebang

ROS 2 uses Python 3 exclusively.
Should resolve "ambiguous python shebang" errors in RPM builds: https://build.ros2.org/view/Gbin_rhel_el864/job/Gbin_rhel_el864__multires_image__rhel_8_x86_64__binary/51/console

Thanks!


Strange truncation behavior with a particular sentence

Hello MMT team,
I am testing MMT with some online automotive text and translating the following paragraph via the REST API and for some reason, the last sentence There are 7 volume settings doesn't get translated.
Here is the complete paragraph:

This feature utilizes the vehicle’s built-in microphone to amplify the driver’s voice through the rear speakers. To activate this feature, select “Driver Easy Speak” from the Apps screen on the audio unit. The feature must be turned on every time you enter the vehicle, and automatically turns off when any door (including the liftgate) is opened.  There are 7 volume settings.

Initially, I thought this was a character limitation issue, but I entered a larger text  and it was completely translated.
Also, when I just enter 'There are 7 volume settings', it gets translated as well.  It's doesn't get translated only within the whole paragraph.
I am not sure what is causing such truncation behavior? Any idea?
Have you experienced a similar issue? I will test more with different strings and see how it goes, but I thought I should ask here, in case you are aware of this issue.
Thanks,
Mohamed

MMT will certainly confirm this: you need to send sentences, because MMT is trained to translate sentences, and is not supposed to get paragraphs with multiple sentences to translate.

Hello @mzeidhassan,
I think there are two main possibilities:

either there is a bug in MMT that leads to ignore that last sentence. In this case, it is ignored before it is sent to the neural decoder.
or it is the neural decoder that decides to ignore it. As @EtienneAb3d mentioned, in fact, our neural decoder has been trained and designed to just handle single sentences.
Therefore it is possible that text blocks with multiple sentences result in weird behaviours like this one (in this case you just need to split your text in correspondence of your full stops .) .

Fortunately, it is quite easy to check whether we are in the former scenario or in the latter.

Stop your engine with ./mmt stop, and start it again with a more verbose logging strategy using ./mmt start -e <your_engine_name> -v 3
Try to translate your period again with this command:

curl -X GET http://localhost:8045/translate \
     -d "source=<your_src_lang>" \
     -d "target=<your_trg_lang>" \
     -d "q=This feature utilizes the vehicle’s built-in microphone to amplify the driver’s voice through the rear speakers. To activate this feature, select “Driver Easy Speak” from the Apps screen on the audio unit. The feature must be turned on every time you enter the vehicle, and automatically turns off when any door (including the liftgate) is opened. There are 7 volume settings." \
     | python -mjson.tool

you can check which input was passed to the decoder in file <your_mmt_home>/runtime/<your_engine_name>/logs/node.log. This way it is easy to check if the missing sentence was sent to the decoder or not. If it was not there is definitely a bug.

I hope this helps! :)
Please let me know the result of this check, or just send me the the log file so I can check that for you.
Have a wonderful day!
Andrea

Thanks @AndRossi
Here is what I see in the node.log. Again, that particular sentence was not translated for some reason. I don't know why.

2017-11-22 12:25:10,406 INFO  eu.modernmt.rest.RESTServer$Router [qtp210737063-94] REST Request (a05203c4-16c8-451b-a5dd-5f21bb86708e): GET /translate?source=en&target=ar&q=This feature utilizes the vehicle’s built-in microphone to amplify the driver’s voice through the rear speakers. To activate this feature, select “Driver Easy Speak” from the Apps screen on the audio unit. The feature must be turned on every time you enter the vehicle, and automatically turns off when any door (including the liftgate) is opened. There are 7 volume settings.
2017-11-22 12:25:10,406 DEBUG eu.modernmt.rest.RESTServer$Router [qtp210737063-94] Executing REST action Translate
2017-11-22 12:25:10,859 TRACE com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor [hz._hzInstance_1_eu.modernmt.InvocationMonitorThread] [<IP_ADDRESS>]:5016 [eu.modernmt] [3.7.5] Scanning all invocations
2017-11-22 12:25:10,859 DEBUG com.hazelcast.spi.impl.operationservice.impl.InvocationMonitor [hz._hzInstance_1_eu.modernmt.InvocationMonitorThread] [<IP_ADDRESS>]:5016 [eu.modernmt] [3.7.5] Invocations:1 timeouts:0 backup-timeouts:0
2017-11-22 12:25:11,731 DEBUG eu.modernmt.decoder.neural.execution.NativeProcess [hz._hzInstance_1_eu.modernmt.cached.thread-7] Received translations: [{"text":"تستخدم هذه الميزة الميكروفون المدمج للسيارة لتضخيم صوت السائق من خلال مكبرات الصوت الخلفية . لتنشيط هذه الميزة ، حدد " السائق Easy Speak Speak " من شاشة " التطبيقات " على الوحدة الصوتية . يجب تشغيل هذه الميزة في كل مرة تقوم فيها بالدخول إلى السيارة ، ويتم إيقاف تشغيلها تلقائياً عند فتح أي باب ( بما في ذلك الباب الخلفي ).","alignment":[[1,1,2,4,6,7,8,9,11,13,14,14,16,17,17,18,19,21,22,23,24,25,26,27,28,28,29,30,32,32,33,34,34,36,37,38,40,40,41,43,45,45,46,48,48,48,50,50,51,53,54,54,55,56,58,58,59,60,60,60,62,62,63,65],[1,2,0,5,4,3,6,6,8,7,9,10,13,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,27,30,31,33,32,34,37,38,35,36,39,40,41,42,43,44,45,46,47,51,48,49,50,52,54,55,56,57,58,59,60,61,62,53]]}]
2017-11-22 12:25:11,731 INFO  eu.modernmt.decoder.neural.NeuralDecoder [hz._hzInstance_1_eu.modernmt.cached.thread-7] Translation of 73 words took 1.322s
2017-11-22 12:25:11,734 INFO  eu.modernmt.rest.RESTServer$Router [qtp210737063-94] REST Response (a05203c4-16c8-451b-a5dd-5f21bb86708e): 200 {"status":200,"data":{"decodingTime":1322,"translation":"تستخدم هذه الميزة الميكروفون المدمج للسيارة لتضخيم صوت السائق من خلال مكبرات الصوت الخلفية.  Max. events: -9223372036854775808 Min events: 0.
2017-11-22 12:25:19,872 TRACE com.hazelcast.nio.tcp.nonblocking.iobalancer.IOBalancer [hz._hzInstance_1_eu.modernmt.IOBalancerThread] [<IP_ADDRESS>]:5016 [eu.modernmt] [3.7.5] No imbalance has been detected.  Max. events: -9223372036854775808 Min events: 0.
2017-11-22 12:25:39,873 TRACE com.hazelcast.nio.tcp.nonblocking.iobalancer.IOBalancer [hz._hzInstance_1_eu.modernmt.IOBalancerThread] [<IP_ADDRESS>]:5016 [eu.modernmt] [3.7.5] No imbalance has been detected.  was actually received  by the MMT instance, so it should have been sent to the decoder without problems.
So I believe that this is exactly the case that @EtienneAb3d had described in his comment (the scenario 2 in my previous answer): the neural decoder is used and trained to receive single sentences, and when a complex text block with many multiple sentences is sent, it may show an unexpected behaviour.
So in order to get your engine to translate multiple sentences, you need to send them separately.
I'm glad we have shedded light on this!
Please let me know if you need any further clarifications on this :)
Have a nice day!
Andrea

Thanks @AndRossi for your reply. I see now, but what is strange here is that larger paragraphs could be translated without no problem, so not sure why this particular sentence in this string was not translated. That said, thanks again for looking into this and thanks @EtienneAb3d for your help!
Have a great weekend!

Yeah, I understand your point: I seems really anti-intuitive that long paragraphs are kept untouched whereas short ones get truncated :)
However, I believe this is quite possible. My suspicion is that, since full stops usually correspond to input end in training data, the model really does not know how to handle a full stop that is in the middle of a text block.
So depending on what the rest of the input looks like, in some "unlucky" cases it may decide to truncate the rest of the paragraph, while in other cases it may decide to translate it nevertheless.
In general, when you give a neural network data that differ (even just a bit) from what it was trained on, weird behaviours like this are possible :)
Since the problem was clarified I am closing this issue now; as usual, if you need any more details on this please feel free to re-open it.
Have a nice day!
Andrea

I'd like to reword a bit my previous comment to explain it better.
In general, neural networks are pretty good at generalizing, and at handling cases that are not featured in the training set. This is one of the reasons why neural networks are employed so much in translation tasks.
In fact, even if MMT itself is not designed to accept text blocks with multiple sentences, as you noticed it manages to translate them correctly in the large majority of cases :)
However, with these premises, it is possible to have rare unlucky cases; in your scenario, the internal model decides that, for that text block only, the translation is better cutting off the output of the final sentence.
In any case we are thinking to implement a sentence segmentation feature.
In this way, when a user submits the translation of a text block with multiple sentences, MMT should transparently identify the sentences and translate them separately.
It should solve problems like this one!
I'm reopening this issue for this reason. I'll keep you updated on this feature :)
Thank you again for your great support!
Andrea

Thanks @AndRossi for your latest answer :-) This is great to know. This will be a great feature indeed. Yes, please let me know when it's available. Thanks again for your support!

Hi @mzeidhassan
starting from the latest master commit https://github.com/ModernMT/MMT/commit/09981f7d35c366d5446e50a65d23c157ad90fabc sentence segmentation feature is available for neural engines. Enjoy! :)

Hi @mzeidhassan,
just a detail: after updating MMT to commit 09981f7 you will probably need to upgrade your older 2.x engines.
You can find all information on how to upgrade them in #322 :)
Have a nice weekend!
Andrea

Thank you so much for the update, @davidecaroselli and @AndRossi ! Have a wonderful weekend ahead!


[FEATURE] Extensible PL011 UART driver

Is your feature request related to a problem? Please describe.
I would like to re-use the existing driver code for the PL011 UART while having it be tailored to a specific system. The current setup of the PL011 UART driver limits the amount of PL011 UARTs that are available and restricts their configuration through a driver specific Kconfig file.
Describe the solution you'd like
The current PL011 driver in nuttx/drivers/serial/uart_pl011.c supports up to 4 PL011 UARTs which must be configured using the options in the nuttx/drivers/serial/Kconfig-pl011 configuration file.
I am working on a port of NuttX for the Raspberry Pi 4, which has 5 PL011 UART interfaces.
The current PL011 UART driver will not work for this application because it is limited to four interfaces.
The interface base addresses must be configured through the driver's Kconfig file, not through pre-processor definitions that are specific to a board (the peripheral addresses for the UART interfaces on the Raspberry Pi can change depending on memory configurations).
The interfaces are configured as UART 0 through 3, but on the Raspberry Pi, there is a sixth UART interface (a special Mini-UART interface) which is UART 1. So this would affect the current numbering scheme.
What I suggest is modifying the existing driver logic so that it becomes more adjacent to a library that developers can use to implement a board/chip specific PL011 UART driver.
I would like to be able to include a header file for the PL011 UART logic which contains the type definitions for the pl011_uart_port_s type. This would allow me to create my own PL011 UART devices depending on the chip/board support like so:
#include <drivers/serial/pl011_uart.h>

#ifdef CONFIG_UART0

static struct pl011_uart_port_s g_uart0priv = {
    // Initialization stuff that is unique to pl011
    .data = {
        .baud_rate = CONFIG_UART0_BAUD,
        // etc ...
    },
};

static struct uart_dev_s g_uart0 = {
// Typical UART configuration (buffers, etc.)
.priv = &g_uart0priv,
};

#endif // CONFIG_UART0

// Repeat for UART 2 - 5 using different configurations for BAUD, buffer sizes, etc.

Ideally the library would also contain a helper function which wraps around uart_register. This function would register a PL011 UART device after initializing its operations:
// In nuttx/drivers/serial/pl011_uart.c

static struct uart_ops_s g_pl011_ops = {
// Initialized with all the `static` pl011 operation functions
};

int pl011_uart_register(char *pathname, struct uart_dev_s *dev) {
    dev->ops = &g_pl011_ops;
    return uart_register(pathname, dev);
}

This allows all the functions that implement the UART operations to remain hidden within the module as static, but provides an interface for authors of PL011 UART drivers to register their custom configured PL011 devices.
The proposed changes reduce code duplication but allows for extensibility depending on the chip board (virtually everything can be changed, just the underlying data structure is the same and the operations are re-used).
Describe alternatives you've considered
I've considered just copy-pasting the PL011 driver implementation into my board's source tree to modify the initialization according to the board's number of UART interfaces and base addresses, etc. However, this seems like a poor choice as it duplicates code and bars the Raspberry Pi port from benefiting from any upgrades/bug fixes made to the PL011 UART driver.
I've also considered changing the PL011 UART driver to support an additional interface and then use the driver Kconfig to set the base addresses, etc. (i.e. the board Kconfig depends on the driver Kconfig for some options), but this seems like a bandaid solution for two reasons:

Another board may come along with more PL011 interfaces, requiring more copy-pasting of another g_pl011uart[N] device
The logic for selecting the UART base addresses is already defined in preprocessor macros, and I don't want to have to script it in Kconfig instead. It feels a little gross and not as extensible.

There doesn't seem to be too many implementation relying on this driver, so I think it's still doable to make these changes. Some of the implementations are QEMU as well, which makes it easy to test if the changes broke anything.
Verification

[x] I have verified before submitting the report.

Yes, I think it's better to expose a new function(pl011_uart_register) for your case.

So after exploring this solution for a little bit, I've noticed another challenge.
The PL011 UARTs on the Raspberry Pi 4B all share one single IRQ, which doesn't work with the current implementation of the IRQ attaching logic in the PL011 UART driver. Part of me wants to mess around with a "clean" solution for this, but I think it would just be faster for me to duplicate the driver code in the Pi source tree and make the required modifications.

So after exploring this solution for a little bit, I've noticed another challenge.
The PL011 UARTs on the Raspberry Pi 4B all share one single IRQ, which doesn't work with the current implementation of the IRQ attaching logic in the PL011 UART driver. Part of me wants to mess around with a "clean" solution for this, but I think it would just be faster for me to duplicate the driver code in the Pi source tree and make the required modifications.

you can turn on IRQCHAIN option, so the irq can be attached more than one handler.


Led's not lighting up

I install it more devices, try with different LED strips but not working
The web UI is working.

More information would be useful.
Please post http://{ip_of_device}/esp_status

{"HOSTNAME":"McLightingRGBW","version":"3.1.0","heap":19248,"sketch_size":626416,"free_sketch_space":1470464,"flash_chip_size":4194304,"flash_chip_real_size":4194304,"flash_chip_speed":40000000,"sdk_version":"2.2.2-dev(38a443e)","core_version":"2_6_3","cpu_freq":80,"chip_id":1458208,"animation_lib":"WS2812FX_DMA","ws2812_pin":3,"led_count":50,"rgb_order":"GRBW","rgbw_mode":"ON","button_mode":"OFF","button_gy33":"OFF","ir_remote":"ON","tsop_ir_pin":13,"mqtt":"AMQTT","home_assistant":"ON","ota":"HTTP","state_save":"SPIFFS"}

Ok, so you use an RGBW Strip (maybe SK6812) connected to GPIO03 which is the RX Pin, right?

no, I have a ws2812 on D4. I change in the definitions.h the #define LED_PIN 2. Even on the web UI it shows pin 3 and it cannot be change. Not sure what I do wrong :(

#define USE_WS2812FX_DMA 2      // 0 = Used PIN is ignored & set to RX/GPIO3; 1 = Used PIN is ignored & set to TX/GPIO1; 2 = Used PIN is ignored & set to D4/GPIO2;  Uses WS2812FX, see: https://github.com/kitesurfer1404/WS2812FX
// or comment it out
#if defined(USE_WS2812FX_DMA)
#define MAXLEDS 384           // due to memory limit of esp8266 at the moment only 384 leds are supported in DMA Mode. More can crash if mqtt is used.
#else
#define MAXLEDS 4096
#endif
// Neopixel
#define LED_PIN 2          // PIN (15 / D8) where neopixel / WS2811 strip is attached; is configurable, if USE_WS2812FX_DMA is not defined. Just for the start
#define NUMLEDS 50         // Number of leds in the; is configurable just for the start
#define RGBORDER "GRBW"    // RGBOrder; is configurable just for the start
#define FX_OPTIONS 48      // ws2812fx Options 48 = SIZE_SMALL + FADE_MEDIUM  is configurable just for the start; for WS2812FX setSegment OPTIONS, see: https://github.com/kitesurfer1404/WS2812FX/blob/master/extras/WS2812FX Users Guide.md
#define LED_TYPE_WS2811    // Uncomment, if LED type uses 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
#define LED_BUILTIN 2      // ESP-12F has the built in LED on GPIO2, see https://github.com/esp8266/Arduino/issues/2192
char HOSTNAME[65] = "NedelcuLEDtest"; // Friedly hostname  is configurable just for the start. Hostname should not contain spaces as this can break Home Assistant discovery if used.
#define ENABLE_OTA 1                  // If defined, enable Arduino OTA code. If set to 0 enable Arduino OTA code, if set to 1 enable ESP8266HTTPUpdateServer OTA code.
#define ENABLE_MQTT 1                 // If defined use MQTT OR AMQTT, if set to 0 enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API, if set to 1, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client
//#define ENABLE_MQTT_HOSTNAME_CHIPID   // Uncomment/comment to add ESPChipID to end of MQTT hostname
//#define ENABLE_MQTT_INCLUDE_IP        // uncomment/comment to add the IP-adress to the MQTT message
#define ENABLE_HOMEASSISTANT          // If defined, enable Homeassistant integration, ENABLE_MQTT must be active
#define MQTT_HOME_ASSISTANT_SUPPORT   // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth
//#define DISABLE_MQTT_OUT_ON_MQTT_IN   // If defined, McLighting will not send back MQTT-out on MQTT-in regarding issue #67, does not change anything at the moment
//#define ENABLE_BUTTON 14              // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control, the value defines the input pin (14 / D5) for switching the LED strip on / off, connect this PIN to ground to trigger button.
//#define ENABLE_BUTTON_GY33 12         // If defined, enable button handling code for GY-33 color sensor to scan color. The value defines the input pin (12 / D6) for read color data with RGB sensor, connect this PIN to ground to trigger button.
//#define POWER_SUPPLY 12               // PIN (12 / D6) If defined, enable output to control external power supply
#if defined(POWER_SUPPLY)
#define POWER_ON   HIGH           // Define the output state to turn on the power supply, either HIGH or LOW.  Opposite will be uses for power off.
#endif
#define ENABLE_REMOTE 13              // If defined, enable Remote Control via TSOP31238. The value defines the input pin (13 / D7) for TSOP31238 Out
#if defined(ENABLE_BUTTON_GY33)
#define GAMMA 2.5                   // Gamma correction for GY-33 sensor
#endif
#define ENABLE_STATE_SAVE             // If defined, load saved state on reboot and save state on SPIFFS
#define CUSTOM_WS2812FX_ANIMATIONS    // uncomment and put animations in "custom_ws2812fx_animations.h"
#define USE_HTML_MIN_GZ               // uncomment for using index.htm & edit.htm from PROGMEM instead of SPIFFS
#define TRANS_COLOR_DELAY 5            // Delay for color transition
#define TRANS_DELAY 10                 // Delay for brightness and speed transition

Then please try either disabling DMA by commenting out
//#define USE_WS2812FX_DMA 2
the you can select any GPIO Pin via UI
or try
#define USE_WS2812FX_DMA 0
and connect you strip to RX/GPIO03.
In the UI you hae to select GRB color order not GRBW

Thank you very much. I manage to make it work. Below is the definitions.h that worked for me. I use pin D6
//#define USE_WS2812FX_DMA 0      // 0 = Used PIN is ignored & set to RX/GPIO3; 1 = Used PIN is ignored & set to TX/GPIO1; 2 = Used PIN is ignored & set to D4/GPIO2;  Uses WS2812FX, see: https://github.com/kitesurfer1404/WS2812FX
// or comment it out
#if defined(USE_WS2812FX_DMA)
#define MAXLEDS 384           // due to memory limit of esp8266 at the moment only 384 leds are supported in DMA Mode. More can crash if mqtt is used.
#else
#define MAXLEDS 4096
#endif
// Neopixel
#define LED_PIN 12          // PIN (15 / D8) where neopixel / WS2811 strip is attached; is configurable, if USE_WS2812FX_DMA is not defined. Just for the start
#define NUMLEDS 50         // Number of leds in the; is configurable just for the start
#define RGBORDER "GRB"    // RGBOrder; is configurable just for the start
#define FX_OPTIONS 48      // ws2812fx Options 48 = SIZE_SMALL + FADE_MEDIUM  is configurable just for the start; for WS2812FX setSegment OPTIONS, see: https://github.com/kitesurfer1404/WS2812FX/blob/master/extras/WS2812FX Users Guide.md
#define LED_TYPE_WS2811    // Uncomment, if LED type uses 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
#define LED_BUILTIN 2      // ESP-12F has the built in LED on GPIO2, see https://github.com/esp8266/Arduino/issues/2192
char HOSTNAME[65] = "NedelcuLEDtest"; // Friedly hostname  is configurable just for the start. Hostname should not contain spaces as this can break Home Assistant discovery if used.
#define ENABLE_OTA 1                  // If defined, enable Arduino OTA code. If set to 0 enable Arduino OTA code, if set to 1 enable ESP8266HTTPUpdateServer OTA code.
#define ENABLE_MQTT 1                 // If defined use MQTT OR AMQTT, if set to 0 enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API, if set to 1, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client
//#define ENABLE_MQTT_HOSTNAME_CHIPID   // Uncomment/comment to add ESPChipID to end of MQTT hostname
//#define ENABLE_MQTT_INCLUDE_IP        // uncomment/comment to add the IP-adress to the MQTT message
#define ENABLE_HOMEASSISTANT          // If defined, enable Homeassistant integration, ENABLE_MQTT must be active
#define MQTT_HOME_ASSISTANT_SUPPORT   // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth
//#define DISABLE_MQTT_OUT_ON_MQTT_IN   // If defined, McLighting will not send back MQTT-out on MQTT-in regarding issue #67, does not change anything at the moment
//#define ENABLE_BUTTON 14              // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control, the value defines the input pin (14 / D5) for switching the LED strip on / off, connect this PIN to ground to trigger button.
//#define ENABLE_BUTTON_GY33 12         // If defined, enable button handling code for GY-33 color sensor to scan color. The value defines the input pin (12 / D6) for read color data with RGB sensor, connect this PIN to ground to trigger button.
//#define POWER_SUPPLY 12               // PIN (12 / D6) If defined, enable output to control external power supply
#if defined(POWER_SUPPLY)
#define POWER_ON   HIGH           // Define the output state to turn on the power supply, either HIGH or LOW.  Opposite will be uses for power off.
#endif
#define ENABLE_REMOTE 13              // If defined, enable Remote Control via TSOP31238. The value defines the input pin (13 / D7) for TSOP31238 Out
#if defined(ENABLE_BUTTON_GY33)
#define GAMMA 2.5                   // Gamma correction for GY-33 sensor
#endif
#define ENABLE_STATE_SAVE             // If defined, load saved state on reboot and save state on SPIFFS
#define CUSTOM_WS2812FX_ANIMATIONS    // uncomment and put animations in "custom_ws2812fx_animations.h"
#define USE_HTML_MIN_GZ               // uncomment for using index.htm & edit.htm from PROGMEM instead of SPIFFS
#define TRANS_COLOR_DELAY 5            // Delay for color transition
#define TRANS_DELAY 10                 // Delay for brightness and speed transition


Add advanced examples

Currently, there are only simple examples which do no really showcase the real power of this framework. In order to better present them, we should consider adding multiple real-life examples.
One of them could be large responsive from that would look good on all sizes from the small mobile phones up to the large tablets.

@srolija I think my PR https://github.com/axilis/react-native-responsive-layout/pull/39 would help to better demonstrate the library. People could try it on Expo before they actually need to install the library.

Stale, there weren't any updates for years


[Docs Site] Fix footnotes with multiple references

Summary
Fix footnotes with multiple references

Got an example of where this is used?

Got an example of where this is used?

https://developers.cloudflare.com/durable-objects/platform/limits/ vs. https://kian-pcx-14165.cloudflare-docs-7ou.pages.dev/durable-objects/platform/limits/


Not usable in wrap mode

I think scrolling should be calculated on visual lines rather than real lines.
With wrap enabled, the visual feedback is basically gone.
Greetings!

Thanks for filing this @chriskisskiss!
I haven't encountered the issue myself. Can you provide a specific example file that results in the issue, or some set of steps I can use to create a file that results in the issue?

Hi, it basically occurs to all files when :set wrap is enabled and there are long lines.
To exaggerate things, when there are wrapped very long but few lines, the scrollbar indicates no possible scrolling at all.
Independently from the plugin, there seems to be no way to scroll in vim between real lines, e.g. when i use gj gk to navigate between wrapped lines, vim is jumping only real-line wise.
However, maybe there is is a way for you to calculate visual lines and adjust the scrollbar accordingly.
Thanks for your work!

"Hi, it basically occurs to all files when :set wrap is enabled and there are long lines."

I downloaded Alice’s Adventures in Wonderland from https://www.gutenberg.org/files/11/11-0.txt.
The lines were hard wrapped, so I converted the document to have long lines with:
:%normal! vipJ

In this case, the scrollbars appear to work generally as expected with the wrap setting on. However, the size of the scrollbars are too large relative to how they would be if calculated how you suggested.

"With wrap enabled, the visual feedback is basically gone."

Do you have a real example where the issue is prevalent? That could be helpful for devising a solution. If the document has confidential/sensitive data, the data can be redacted with e.g., :normal! ggVGrX. For the file I tried above, the visual feedback, while not perfect, works okay.

"Independently from the plugin, there seems to be no way to scroll in vim between real lines, e.g. when i use gj gk to navigate between wrapped lines, vim is jumping only real-line wise."

When I press gj, Neovim navigates down to the later part of a wrapped line. Does this match the behavior you're encountering?
https://user-images.githubusercontent.com/541289/132103196-bd81320f-ea12-49d9-8e7e-6dea41872178.mp4

I can now replicate the issue. Trying with Alice’s Adventures in Wonderland did not have a problem because of the length of the document. When I follow the same steps (:%normal! vipJ) used above to create long lines, but then only keep a small number of initial lines (e.g., 40), I encounter the same issue described above.

I really appreciate a lot your help and your work.
The video exactly depicts what I've meant.
I am currently really hard writing on my thesis, in which I encountered this behaviour. Since I don't want to publish the text yet, I didn't have time setting up an alternative text.
I understand that for coding, wrapped lines are rarely used, which is why it probably isn't an issue for most users.
Ather plugins behave exactly the same (e.g. Xuyuanp/scrollbar.nvim) and also GUI implementations of neovim.
Thank you very much.

As of 01fbd97597b33ece9700c178cdde52268cb6f2bc, there's a new scrollview mode, proper, that accounts for wrapped lines.
By default, the scrollview mode is set to auto, which will account for wrapped lines only when the buffer has relatively few lines (the scenario where the issue is most prevalent).
The plugin can be configured to use proper mode in all scenarios, but this mode works slower than the other modes (which could be problematic depending on your hardware and file lengths).
let g:scrollview_mode = 'proper'


PlayerUpdateBuilder trackUpdate got overwrites once other method got called

The setEncodedTrack action got override by other action call that modify track data.

Some method update override correctly (stopTrack, setTrack), but not those actions that do not conflict with each other (setEncodedTrack, setIdentifier).
Source code will explain more clearly

You cannot set the identifier and the encoded track at the same time. The documentation specifies that those setters override all fields.
I'll create a builder so people can set only the fields they need.


MAINT: stats.powerlaw.fit: fix overflow when np.min(data)==0

Reference issue
Closes gh-17801
What does this implement/fix?
gh-17801 reported an overflow error in stats.powerlaw.fit when np.min(data)==0. This PR fixes the issue.

I think the CI failures are unrelated, but please check me.

Putting this as a back port candidate since the code used to work in a previous version (quid of the quality of results, but still.)


Feature request: Allow configuring the username regex.

I'll consider adding in the documentation sometime later.
The username string must satisfy the ^[\w][\w\.]*$ regex (it could change in the future).

From https://github.com/pocketbase/pocketbase/discussions/1315#discussioncomment-4681667
I would like to use hyphens instead of underscores for usernames; which currently requires a middleware. I do not think allowing a regex configuration in the settings would significantly affect the maintainability of the project.
Thank you greatly for your hard work on this project; it is a very clever, elegant & easily deployable solution to a difficult problem.

I was planning initially to allow configuring the username regex and min length as collection options but I dropped that idea in favor of making the username field entirely optional in the future in order to allow using any unique field as identity field, meaning that the username will be a regular text field and you'll have full control on its min/max length and the supported regex pattern.
I've outlined some of the idea in https://github.com/pocketbase/pocketbase/discussions/2425#discussioncomment-5818276.
This for now is a low priority but exists in my todo and will be implemented somewhere after v0.17.


FIX: Clarify  snake_case+CamelCase in TSV+JSON

see: https://github.com/bids-standard/bids-starter-kit/pull/130#issuecomment-607085403

FYI, I recall that for BIDS in JSONs CamelCase is preferred, and in TSV headings snake_case is preferred. Not sure whether this principle is formal and/or documented in a general place, out whether it was just personal communication with @chrisgorgo.

I had the same impression as @robertoostenveld and scanned the spec for any part mentioning that convention that we follow.
I did not find it, so I add it with this PR, RECOMMENDING the use of this convention.

Thank you for clarifying here

@dorahermes I pushed a new commit, I think it's even more clear now.

Thanks @yarikoptic linkchecker passes now.

Thanks @yarikoptic linkchecker passes now.

GREAT! Since I started to worry if it all of a sudden became more buggy than useful ;)  apparently it is still of benefit! ;)


Chain crypto step2

still missing instance for PublicKeyError -> Error

Please look into the test failures, they seem to be introduced by recent chain_crypto changes.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@c47e13c). Click here to learn what that means.
The diff coverage is 66.4%.

@@            Coverage Diff            @@
##             master     #504   +/-   ##
=========================================
  Coverage          ?   44.55%
=========================================
  Files             ?      166
  Lines             ?    15173
  Branches          ?        0
=========================================
  Hits              ?     6761
  Misses            ?     8412
  Partials          ?        0

Impacted Files
Coverage Δ

chain-impl-mockchain/src/lib.rs
100% <ø> (ø)

ed25519-bip32/src/lib.rs
0% <ø> (ø)

chain-crypto/src/hex.rs
100% <ø> (ø)

chain-crypto/src/lib.rs
0% <ø> (ø)

ed25519-bip32/src/signature.rs
81.25% <0%> (ø)

chain-impl-mockchain/src/certificate.rs
75.67% <0%> (ø)

chain-impl-mockchain/src/leadership/genesis.rs
0% <0%> (ø)

chain-impl-mockchain/src/transaction.rs
88.48% <100%> (ø)

chain-crypto/src/key.rs
77.77% <100%> (ø)

chain-impl-mockchain/src/block/message.rs
92.85% <100%> (ø)

... and 14 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c47e13c...39d88e4. Read the comment docs.


Document the "Features" of a Canopy Site.

What Does This Look Like

[ ] Document the the Works Page (/works/{slug})
[ ] Document the Search (/works)
[ ] Document Home (/)
[ ] Document Metadata (/metadata)

Yep, see #18. I also think this could be where the SSR API routes are documented.


Test failures: "RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ensure that set_n_cpu_devices is executed before any JAX operation."

      This allows `jax.pmap` to be tested on a single-CPU platform.
      This utility only takes effect before XLA backends are initialized, i.e.
      before any JAX operation is executed (including `jax.devices()` etc.).
      See https://github.com/google/jax/issues/1408.

      Args:
        n: A required number of CPU devices (``FLAGS.chex_n_cpu_devices`` is used by
          default).

      Raises:
        RuntimeError: If XLA backends were already initialized.
      """
      n = n or FLAGS['chex_n_cpu_devices'].value

      n_devices = get_n_cpu_devices_from_xla_flags()
      cpu_backend = (jax.lib.xla_bridge._backends or {}).get('cpu', None)  # pylint: disable=protected-access
      if cpu_backend is not None and n_devices != n:
>       raise RuntimeError(
            f'Attempted to set {n} devices, but {n_devices} CPUs already available:'
            ' ensure that `set_n_cpu_devices` is executed before any JAX operation.'
        )
E       RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ensure that `set_n_cpu_devices` is executed before any JAX operation.

/nix/store/pkv6vvr3hcd9zanwi1r0psmpmdaqb9bp-python3.10-chex-0.1.6/lib/python3.10/site-packages/chex/_src/fake.py:74: RuntimeError
=========================== short test summary info ============================
ERROR tests/checkpoints_test.py
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics12 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics23 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum9 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum19 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum2 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames22 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames23 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_session - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics3 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics4 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees11 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees15 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames11 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum11 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum5 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum6 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum7 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics2 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics6 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics0 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames9 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum0 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum20 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames19 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees16 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees0 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees1 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames12 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees17 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames2 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames0 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames1 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees9 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames5 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees5 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees6 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames15 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames16 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees19 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees2 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics13 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics14 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees20 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees7 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames13 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames17 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum1 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames20 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum12 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees12 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees13 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics16 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics17 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum13 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames3 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum22 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum23 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics7 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum15 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics8 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics20 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics21 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum16 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum17 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames6 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics1 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics10 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees22 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees23 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees3 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum3 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_min_device_batch_avoids_recompile0 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_min_device_batch_avoids_recompile1 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_min_device_batch_avoids_recompile2 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames7 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics18 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames4 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum10 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum8 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum21 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames10 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees18 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics5 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees21 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees10 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames14 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames18 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames21 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees8 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees14 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics15 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum14 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics9 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum18 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics11 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics22 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnum4 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_trees4 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_min_device_batch_avoids_recompile3 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_basics19 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...
ERROR tests/jax_utils_test.py::PadShardUnpadTest::test_static_argnames8 - RuntimeError: Attempted to set 4 devices, but 1 CPUs already available: ens...

What you expected to happen:
the test suite to pass
Logs, error messages, etc:
Steps to reproduce:
checkout flax @ 0.6.5 and run the test suite

How are you running the test? Is it with pytest -nauto tests/jax_utils_test.py? Are you running any JAX operations before running this test? I was able to re-create the error by inserting the JAX operation jax.numpy.array([[1, 2, 3]]) right beforechex.set_n_cpu_devices(NDEV)


Forward native props to underlying native components

As a composite component, ParsedText does not have setNativeProps as a method. Certain React Native components rely on children having an accessible setNativeProps method to forward on properties to underlying native components.
Some more details can be found in the React Native documentation: https://facebook.github.io/react-native/docs/direct-manipulation.html#composite-components-and-setnativeprops
For example, we currently cannot wrap a <ParsedText> with a <TouchableHighlight>:
<TouchableHighlight onPress={() => {}}>
  <ParsedText>
    The text to parse
  </ParsedText>
</TouchableHighlight>

TouchableHighlight requires that its child either has or forwards setNativeProps to a native component.
This PR fixes the component to correctly forward the native props, fixing compatibility with components such as TouchableHighlight.

Thanks for the PR

Released 0.0.13

Thanks for the fast turnaround!


how to hande the rows json

How to handle the array received from the server in the component?
example:
columns =>
{
   name: "Id", // I need to put the translation and identify the field received
   options: {
    filter: true,
    sort: true,
   }
  },
  {
   name: "name",
   options: {
    filter: true,
    sort: false,
   }
  },
  {
   name: "active",
   options: {
    filter: true,
    sort: false,
   }
  }
rows =>
{id: 1, name: "test", active: true}
{id: 1, name: "example", active: true}

For my project,  I wrote a "massage" that takes the database json results as an input and returns the values as set of arrays instead of json.
So in your example, you would return an array like this
1,'test', true
1, 'examples', true
Make sure
a) there are no nulls (convert to empty string)
b) the order in the array lines up with the order in your columns

If anyone knows how I am supposed to do code in this text editor, please let me know.

You use 3 'tick' marks: ``` followed by js, so: ```js - and then again to break the code block ```
var data = [];
var data_row_array = [];
fetch('/api/v1/messages')
	.then(res => res.json())
	.then(results => {
		results.map(row => {
			data_row_array = table_columns.map(field => {
				return (row[field.database_name | ? field.database_name : ''])
			});
			data.push(data_row_array);
		})
		return data;
	}).then(results => {
		callback(results);
	});

Thanks!

You can actually use anything... column might be conceptually better choice.  You could just use "x".
table_columns is an array of columns.  In the map function, the variable field is used to represent one element of the array, or one of the columns in table_columns.

you do not understand what I meant, in the code I gave as an example, it is what I use, but the translation field is the same as json, in other components there is one field for the field name and another for the field json's ID @teadams

If my example, tables_columns in the same as your columns.
I have an extra property called "database_name".  If the name for the column in the database matches the name property, you would use "name" instead of "database_name".
function getData(path) {
    return fetch(path)
        .then(res => res.json())
        .then(results => {
            return results.map(row => {
                return columns.map((column) => {
                    return row[column.name] || '';
                });
            });
         });
}

It would be great to add implementation that allows to use data prop as an array of objects, idk where we can use array of arrays in real world projects and data as shown above -  [1,'test', true] but not {id: 1, name: "test", active: true}
If i misunderstood something, please let me know

The proposed solution is not optimized because of column like "edit" which corresponds to button and not to data itself ..

@jkantr or anyone else. I'm working on a project where it doesn't seem that a remote solution works very well. I may be missing something, but while I get the data from a remote source, such as the example you provided. I seem to be having issues in other areas, such as pagination, getting the rows per page, searching, filtering, etc. It appears a lot of these classes are trying to index base the whole dataset, but when I sent back paginated data from a remote source, I'm seeing a lot of issues trying to get everything else working. I know you're not the author, but it seems you have implemented this before. I was curious how you were able to handle the remote dataset (which paginates the data from a SQL database), with searching, filtering, pagination, etc?
I know that currently, it seems that the pagination count is not able to be passed in as a prop, but I haven't been able to figure out how to get anything else working.

Does anyone have a working example of this?
Maybe it's late in the week but I'm confused.
I'm getting 'table_columns' is not defined error.

The latest release now supports data as objects. Example: https://github.com/gregnb/mui-datatables/blob/master/examples/data-as-objects/index.js


1076 don't apply invalid formatting

Description
no longer applies formatting that would be invalid.
this prevents errors in violation mode.
Issue
Resolves #1076

Interestingly FrequentlyAskedQuestions.md has the statement It has no impact on _what_ data gets generated. Perhaps worth double checking this file is also correct.
Also no-fields.json may work now, but I am unsure where exactly this file is used (if at all).


Cross-platform GitHub CI

using systems such as Travis CI & AppVeyor, would consider other systems such as Circle CI & Azure Pipelines.
This will come after automatic testing (#40) is added.
P.S. Considering that GitHub CI seems to work just like Azure Pipelines, I think this is the way to go. I just updated the title to reflect the desire to move towards cross-platform GitHub CI.

Title and description now updated for cross-platform GitHub CI, which seems to work just like Azure Pipelines.


Fix issue 447 (Pending label containing curly bracket crashes)

This pull request derives from #462. So needs to be handled after that.

Fixes #447
The root cause of the problem is that the XSpec compilers create @pending directly when they must create @pending generator.
This pull request fixes it.

@cirulls
Merged this bug fix.


ETA for next release?

Thanks again for this valuable library!
However, in my project, rkyv is the only library still using hashbrown 0.12.
The hashbrown dependency has been updated since the last release, and it'd be great if a new 0.7.x release can be published on the road to 0.8.0 😉

Unfortunately rkyv publicly supports hashbrown 0.12 specifically by providing Archive/Serialize/Deserialize impls for its types when the hashbrown feature is enabled. Since it's not a totally-internal dependency, updating it is a breaking change. Hashbrown has already been updated to 0.14 in the main branch (0.8) but we can't update it in 0.7.

Hey what about an ETA for releasing 0.8 to crates?

Development is moving steadily, but 0.8 probably won't be ready for release soon. In the past I've been overly optimistic on how soon it will be done and blown past the projections I gave. For now, I just have to keep making progress over time. I do post regular development updates in the #development discord channel if you are interested in following progress on 0.8. Sorry I can't give a more helpful answer!

No worries I was just curious, appreciate the update and the library. I’ll join the discord. Thanks!

Currently ahash 0.7 is broken on nightlies, which means that hashbrown 0.12 is also broken:
https://github.com/tkaitchuck/aHash/issues/200

@djkoloski Could you give an order of magnitude estimate, please?  Do we expect 0.8 to be released in a matter of week, months or years?

Do we expect 0.8 to be released in a matter of weeks, months or years?

Yes.
More seriously, probably months. There is a lot of work left to be done. PRs are always welcome, though I admit I don't have a lot of time to spend so I try to spend most of it writing code rather than doing project management. If you or anyone else is interested in contributing, then the discord is a good place to talk (not required, feel free to also just PR).

Update: I'm doing my best to get 0.8 out before or during RustConf next month.

The first release candidate for 0.8 has been released as 0.8.0-rc.1. We're down to the final week prior to release.

0.8 is out now.


hopefully fixes #18

@cmungall Test failure. From your Makefile, it looks like it should be doing pretty much the same test as mentioned...?

test fails because neo takes too long to load on travis.

Ugh, flying blind then, but the most recent set has fixed things and minerva has been rebooted.


Question: Server auth requires keyboard interaction.

I know this is kind of an edge case, however I am trying to log into the sftp server of a piece of equipment I work with, and it requires some sort of keyboard interaction with the cl as part of the password. I have been poking around several different packages, and have not been able to figure out how this works. I was able to sign in using the node library 'ssh2-sftp-client' with the parameter of 'tryKeyboard' set to true. I would really prefer to build this as a flutter app, instead of js. Is there a way in the 'onPasswordRequest' function that I can add this keyboard interaction?

Is there a way in the 'onPasswordRequest' function that I can add this keyboard interaction?

Yes. Keyboard interactive authentication is enabled when the onUserInfoRequest field is set.

Usage of onUserInfoRequest can be find here: https://github.com/TerminalStudio/dartssh2/blob/master/bin/src/ssh_shared.dart#L21

It was in the API in multiple locations, and I somehow still managed to miss it. Thanks so much for the quick response and the excellent resources.


32-bit Windows support

Does devd support 32-bit Windows 8?
I'm running devd and getting following error on git bash:
bash: /c/Windows/system32/devd: cannot execute binary file: Exec format error
Also, cmd.exe even doesn't see the executable.
I was using  devd-0.4-windows64.zip. And devd-0.4-linux64.tgz for git bash additionaly.

Yes, as the name suggests, that binary was compiled for 64-bit Windows. I haven't tested it, but it should be reasonably easy to just cross-compile for 32-bit Windows (have a look at the build script). I wonder how common 32-bit Windows is nowadays?

I find myself needing 32bit windows exe. The build script link is broken and I don't see it in repo under a name I recognize. New link or filename?

@maphew Hi there - could you please look at the build scripts here. I've just added a 32-bit Windows distribution there, and you should be able to just run the script from the top-level of the devd project to build it. I might include a 32-bit build in the next release if there's a call for it.
I'm curious - under what circumstances might one encounter a 32-bit Windows system nowadays?

The virtual desktop infrastructure (VDI) our organization uses has Win7
32bit machines as the default image. There are 64bit ones too, but they're
slower for some reason.
The VDI are not used for serious work, but some of the people I need to
share development snapshots with use them.
I have a real webserver I can throw snapahot pages up on, so the need for
32bit devd.exe is not great.
It was just easier for me to send an email around saying "go to (here) and
run a batch file" than copy pages to the server. Or at least I thought it
was until I discovered devd I had was 64bit only. ;-)
Matt
On Dec 11, 2016 11:10 AM, "Aldo Cortesi"<EMAIL_ADDRESS>wrote:

@maphew https://github.com/maphew Hi there - could you please look at
the build scripts here https://github.com/cortesi/godist. I've just
added a 32-bit Windows distribution there, and you should be able to just
run the script from the top-level of the devd project to build it. I might
include a 32-bit build in the next release if there's a call for it.
I'm curious - under what circumstances might one encounter a 32-bit
Windows system nowadays?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cortesi/devd/issues/47#issuecomment-266300736, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAdrOPeH4WRgLEDnLH6fhqaa7RqntA7Xks5rHEq_gaJpZM4Hm-hO
.


Dashy configuration lost on container restart

Describe the bug
If the Dashy container is rebuilt then the configuration is lost since there's no docker volume specified
Environment

Are you running the playbook from a remote box or the Ansible-NAS box itself?  Remote (comments below on why this is critical to the issue)

Expected behavior
The Dashy config should ideally persist beyond the life of the container
Actual behavior
The config is lost with the container
Steps to reproduce
Spin up Dashy, make a home page, restart Dashy container, voila... config gone
Additional context
I think part of this issue stems from the following:

The Dashy docs do not super clearly specify even using a volume in the docker-compose example... it's there but commented out
I think there's going to be an issue with remote deployment as I'm not sure how changes made to the config on a remote server can be synced back with the repo because if that can't happen then even with a volume we're right back where we started since the default config would override the one configured with the Dashy live editor.

I believe these are relevant from the docker logs (extracted from portainer)
 ERROR  Failed to compile with 2 errors11:54:00 AM

These relative modules were not found:

* ../../public/conf.yml in ./src/utils/ConfigAccumalator.js

* ../public/conf.yml in ./src/router.js

 ERROR  Build failed with errors.

error Command failed with exit code 1.

info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

ERROR: "build-watch" exited with 1.

error Command failed with exit code 1.

info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

yarn run v1.22.15

$ npm-run-all --parallel build-watch start

$ vue-cli-service build --watch --mode production

$ node server

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 Error, unable to validate 'conf.yml'

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚠ Config file could not be found at ./public/conf.yml

right so part of the issue as well is that dashy won't create a default config if there's a volume mount For just a directory specified - which was my ideal solution


fix some repetitive words across docs

What changed? Why?
This pull request corrects several occurrences of duplicated words and typos across different files in the documentation.

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/2

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
1

Sum
2


Error message when I execute this comando ./ dependencies-release and build-release

After running ./dependencies-release.sh , I have this message , why?
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
After running ./build-release.sh , I have this message , why?
Error: module * is in file 'ast/*.d' which cannot be read
import path[0] = /home/user/Downloads/silq-master/ldc2-1.18.0-linux-x86_64/bin/../import

I assume you downloaded a zip file instead of cloning with git. Either use git clone or manually download the submodules too. (https://github.com/tgehr/ast and https://github.com/tgehr/util)

Also see: https://silq.ethz.ch/install


Module 'highchart' is not available!

v0.6.0-rc

@xpsteven I assume you closed it because it's resolved? how did it resolve, just by refreshing?


Dialog

How can i see the dialog, the text?

I opened the db.sqlite, but how do you specify what to say and what to respond?

You need to change the path in trainer.train(/*you path to the conversations should go here*/)
Conversations should be created in the format which is attached and should be saved with a .yml extension*.

The rest of the files will be created on its own.


0.4.1 incompatible with Kotlin 1.7.21

Hello,
it seems like the new 0.4.1 release of your library is incompatible with Kotlin 1.7(.21).
My projects all crash in the gradle build step with the error
Caused by: java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.incremental.FileUtilsKt.cleanDirectoryContents(java.io.File)'

when using the latest version. What I could see is that you upgraded your Kotlin version to 1.8.0-BETA: https://github.com/ryandens/javaagent-gradle-plugin/commit/5b7747d7c76e96fc91d329d9652a46c54ccd5768
When I change my Kotlin version to 1.8.0-BETA, too, the projects build. I wonder if this was intentional, since a new language version seems like a big change for a bugfix version release.
Cheers,
Ronny

Thanks for the report! Fixed in #34 / 0.4.2