Add configuration for receiver logging

This adds some new configuration that can be used to set up the receiver to log data to its internal disk. This is part of a feature for PX4 to add parameters that enable logging setup by the user, without having to do it manually on the receiver. It is currently only implemented for the SBF driver. The implementation is kept generic to make sure other drivers can implement it as well.

FYI @SeptentrioGNSS

Could this also include the CLI (setFileNaming, 'Cd', 'NamingType', 'filename')?

Closing because this will be rebased onto the the new PX4 Septentrio driver.


fix: macros correctly use u32 instead of i32 for indexing

Fixes #126

macOS fail hmmmm weird

fixed the test, thanks!


⚠ Bofrost.at has degraded performance

In f99d4e1, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1830 ms

Resolved: Bofrost.at performance has improved in d7e926c after 2 hours, 14 minutes.


No docs for v0.3.0

Hi there, not sure if you're aware but the docs for v0.3.0 didn't build: https://docs.rs/crate/simd-json-derive/latest

Long resolved :)


Is there any way of calling a function on blur??

Is there any way of calling a function on blur??
The component accepts onChange but it does not accept an onBlur option.

in renderInput, you can access the ref and through that access the onBlur function, I guess


Documentation:  PR Checklist or CI Actions for a data stamp update/reminder

Let us know where something needs a refresh or put your idea here!
A posts date usually is the date it was started by the author.  We tend to forget to update the date once merged in and published.  The blog then sorts the posts by date and our most recent post is buried.
Two possible solutions:

A CI Action could be used to automatically change the date stamp of the file to the date of the Merge?
A new checkbox in the PR Checklist for reviewers and creators of the post to check.

@StefanThoma maybe cool CI action to implement?

Solution 1 sounds a bit complicated.
I think I could create a CICD check on merge with main to make sure at
least one of the blog post dates is within 2 days of the current day.
WDYT?
On Mon, Jun 17, 2024 at 1:34 PM Ben Straub @.***> wrote:

Let us know where something needs a refresh or put your idea here!
A posts date usually is the date it was started by the author. We tend to
forget to update the date once merged in and published. The blog then sorts
the posts by date and our most recent post is buried.
Two possible solutions:

A CI Action could be used to automatically change the date stamp of
the file to the date of the Merge?
A new checkbox in the PR Checklist for reviewers and creators of
the post to check.

@StefanThoma https://github.com/StefanThoma maybe cool CI action to
implement?
—
Reply to this email directly, view it on GitHub
https://github.com/pharmaverse/blog/issues/184, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJUWWERPCLF7B3NW4EVQHI3ZH3CVZAVCNFSM6AAAAABJN2GLQ2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TOMJRHA3TGMI
.
You are receiving this because you were mentioned.Message ID:
@.***>

That sounds cool and practical to me!!

Honestly - I would hunt around in the marketplace and other repos as I am sure this has been solved already.

I think it would be fairly easy to write an action for this, similar to #196. The only hurdle I can foresee is how to control when the action fires and when it does not, because we may have instances when we merge something onto main that isn't a blog post and so would not want the date of the latest blog post to be updated to the current date. What about if we mandate adding a codeword to the PR title (similar to "[Skip vbump]", so something like "[Update date]" so that every PR merged to main that uses this codeword then overwrites the timestamp on posts with the current date?

You could also just check whether a new folder in posts/ was created in this branch, then you know a new blogpost was written, hence you should check the date. WDYT?

My thought was that it might be a bit obscure then. Asking users to put "[Blog post]" in their PR title at least then gives them a hint as to why to the date might be changing.


Create property section

Library name(s)
MarkDoc.Generator.Basic
Description
Add the ability to print detailed property documentation
Subtasks

[x] Name
[x] Signature
[x] Summary
[x] Remarks
[x] Example
[x] Value
[x] Exceptions
[x] See also
[x] Inherited from (#58)

Total: 37m


Firefox/Chrome + S3 + Wagtail admin + webfonts = :(

On localhost, admin works great in Firefox and Chrome.
On our staging server, it works fine in Chrome but not in Firefox. The CSS is pointing to the proper paths which load when I copy/paste them into the URL bar, but they just don't load in Firefox. The browser never completes loading as a result, which results in a spinning icon that give me anxiety 😛
The obvious workaround is "Do admin in Chrome," but I'm a Firefox homer so I'm posting here with hopes that a solution is found.
Thanks for all of your hard work! Wagtail has been so nice to work with.

I found this issue via stackoverflow: https://stackoverflow.com/questions/46538682/wagtail-admin-icons-disappear-when-running-collectstatic-and-putting-everything
I'm facing the same issue described by the OP of that post, however I'm using boto3. So I tried to implement @gasman 's solution using AWS_S3_OBJECT_PARAMETERS however I'm getting an other error:
ValueError: Invalid extra_args key 'Access-Control-Allow-Origin', must be one of: ACL, CacheControl, ContentDisposition, ContentEncoding, ContentLanguage, ContentType, Expires, GrantFullControl, GrantRead, GrantReadACP, GrantWriteACP, Metadata, RequestPayer, ServerSideEncryption, StorageClass, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, WebsiteRedirectLocation.
I can not figure out which key is the right one for boto3, so I would really appreciate any help on this.
Also, on my s3 bucket I'm already using the follwoing CORSRules
<CORSConfiguration>
	<CORSRule>
		<AllowedOrigin>*</AllowedOrigin>
		<AllowedMethod>GET</AllowedMethod>
		<MaxAgeSeconds>3000</MaxAgeSeconds>
		<AllowedHeader>Authorization</AllowedHeader>
	</CORSRule>
</CORSConfiguration>`

@reinka Afraid we can't really help here, as this is a boto3 issue rather than a Wagtail-specific one - I'd suggest asking on Stack Overflow instead.

@reinka , @gasman , actually it is no needed, putting * could create security issues, instead you have to put your domain, it worked for me.
<CORSConfiguration>
	<CORSRule>
		<AllowedOrigin>http://www.example.com</AllowedOrigin>
		<AllowedMethod>GET</AllowedMethod>
		<MaxAgeSeconds>3000</MaxAgeSeconds>
		<AllowedHeader>Authorization</AllowedHeader>
	</CORSRule>
</CORSConfiguration>`


The "add a website" input update value very slowly.

I've just found an issue on the projet.
Where: In the "add a website" input.
What: While I'm typing the value appears very slowly in the field. Sometimes it doesn't.
My chrome version: 87.0.4280.88

I've found that this issue is only happening when the website list (myURLsRedirect ) has zero or one item.
⚠ When you have two or more items on the list the issue is no longer visible.
I've made a quick video to illustrate.
➡  https://www.loom.com/share/ef024a63e2004b61800accde51147ae3

I can't reproduce the bug. Needs more investigations.
Thanks @regulardesigner


update to latest swagger spec

Perhaps we should vendor the json too.
SubscriptionsV2.pretty.json.txt

Nov13.pretty.json.txt


Bottom tab bar customisation and my device screen

Tab navigation stack change
Customised bottom tab navigation bar
My device screen and device card component using mock data
Auth screens UI changes
Home screen ui design

Merging Conflicts

added global toast message component with animation, managed using reducer

Toast usage

import toast actions

    import {toastError, toastInfo} from '../actions;
    dispatch(toastError("Your Error message!"));
        dispatch(toastInfo("Your Info message!"));

Added prompt component to get yes/no prompt from user
Data visualisaion components in homescreen


Rearrange Decentraland and Demo + move the "why" section

Issue link

n/a
Types of changes

Docs (modified documentation or code comments)

@marcelomorgado Oops, I think most of what was going to be this PR got committed straight to develop accidentally. Must have been an errant click - I'm usually good about avoiding that.

@marcelomorgado Ah yes shoot, here's the commit with most of the changes that would have been in this PR https://github.com/tasitlabs/tasit/compare/182af1c4c515...ca904a6bc099

I'll pay more attention to my next reviews too.


static_assert failed: 'type is not supported for extraction from a stream'

I'm new to both C++ and the library. I'm trying to make a DLL which will ask for Xbox Live sign in and use the gamertag. However, as soon as I include the library as follows:

I get these errors:

I installed the package through NuGet:

Is there no update for this?

I just ran in to the same problem. However the leaderboards sample here did not have the same problem: https://github.com/microsoft/xbox-live-samples/tree/main/CreatorsSDK/Leaderboards/UWP/Cpp
I managed to track down the problem to the following setting:
Project properties -> C/C++ -> Language -> Conformance mode
This was set to "Yes (/permissive-)" and results in the error messages; setting it back to "Default" seems to fix it.


chore: GH form for Q&A discussion category

Description
Changes proposed in this pull request:

Introduce the form for the Q&A discussion category

Looks good to me


[Bug]: Issue with x86 Windows builds (MSVC) and ABSL usage of intrinsics #18503

Describe the issue
Cross posting as advised by the protobuf maintainers - https://github.com/protocolbuffers/protobuf/issues/18503
I get the following two C3861 compiler errors:
'_mm_crc32_u64': identifier not found
'_mm_cvtsi128_si64': identifier not found

In both cases the error is coming from the crc32_x86_arm_combined_simd.h header file. This comes in as an absl submodule via the protobuf git repo.
Perhaps the issue is in how I'm compiling protobuf? The only CMake arg that stands out is my usage of -Dprotobuf_MSVC_STATIC_RUNTIME=OFF
Some intrinsic functions are found e.g _mm_crc32_u16 and they're picked up from include\intrin.h and include\nmmintrin.h as part of the MSVC distribution.
Steps to reproduce the problem
From protobuf v28.0, which uses abseil https://github.com/abseil/abseil-cpp/tree/4a2c63365eff8823a5221db86ef490e828306f9d
Compile using the latest v143 MSVC compiler.  x64 builds work fine, but x86 requires the following workaround to avoid the errors:
I get the following two C3861 compiler errors:
'_mm_crc32_u64': identifier not found
'_mm_cvtsi128_si64': identifier not found

In both cases the error is coming from the crc32_x86_arm_combined_simd.h header file. This comes in as an absl submodule via the protobuf git repo.
Workaround:
if(32_BIT_BUILD)
  add_definitions(ProjectLib "/arch:SSE2")
endif()

What version of Abseil are you using?
https://github.com/abseil/abseil-cpp/tree/4a2c63365eff8823a5221db86ef490e828306f9d
What operating system and version are you using?
Windows 10 Enterprise and Windows 2016 server
What compiler and version are you using?
MSVC v143
What build system are you using?
CMake 3.30.0
Additional context
No response

It looks like this issue was fixed by https://github.com/abseil/abseil-cpp/commit/d4578efe7c3a8da81f6e555f6ac1ffa2862b75ed.

Many thanks @derekmauro I'll propose the protobuf repo moves along it's version.


/usr/src is not updated when empty

gitup: build_repair_command: There are too many files to repair -- please re-clone the repository: Argument list too long
It would be great if gitup could download resources even if the folder is empty. There would be no need for another tool or downloading from the web.

I just committed a patch that doesn't attempt a repair when the local repository folder exists but is empty.  How does it work for you?

It works great! Thank you!
[root@somewehre /usr/src]# rm -rf *
[root@somewehre /usr/src]# rm .*
rm: "." and ".." may not be removed
[root@somewhere /usr/src]# ls -al
total 8
drwxr-xr-x   2 root  wheel  1024 Sep 20 08:07 .
drwxr-xr-x  16 root  wheel   512 Oct 15  2021 ..
[root@somewhere /usr/src]# gitup release
Host: git.freebsd.org
Port: 443
Repository Path: /src.git
Target Directory: /usr/src
Want: d106002967eff712894ab8b5337bbbff106ce5e0
Branch: releng/11.4
....

Done.


Exercise: Add more plants and spices

Closed 399

I have added two more plants to the world.
The first one '&' is a tasty plant, which contains a lot of calories and a lot of energy. But it reproduces slowly;
The second one 'W' is a swooping plant which swoops and eats all items around it, including Tigers and other plants


Internationalize the code

Please internationalize the code so that it will be possible to localize the UI parts in to other languages. As far as I can tell from my brief interaction with the tool, this would mainly be located in the preferences area.

I'll do this in a future release 👌


add industrial material and subclasses #1053

At first, check if physical output of passes the checks
closes #1053

I suggest that we revert the changes on industrial process now. Then we can merge the industrial material quickly and discuss industrial process thoroughly in the issue and implement it in a separate PR once we have an agreement on the redefinition.
Do you agree @Vera-IER ?

Yes!


chore: add timestamp default symbol

we need to get CURRENT_TIMESTAMP, LOCALTIME, LOCALTIMESTAMP from parse tree as part of default value for timestamp column type.

No need to add this, the lexer merge them to NOW_SYMBOL


Add support for multiple languages (en/de)

Closes #113

Add Client#FetchLocale() to dynamically set language


isort option group-by-package

I'm testing if we (astropy) can switch our isort to ruff's implementation. We use the option group-by-package, which doesn't appear to supported. Requesting that this configuration option be added!

Acknowledged!


Sing Out Not Working

Hi!
I browsed through the issues and find out that someone had a similiar problem, like me now:
https://github.com/adi518/vue-facebook-login-component/issues/9
If I sign out and reload the browser window the previously signed in user is still logged in again. I've already set up my localhost url and app domain in the Facebook development platfrom, so I have no idea what is wrong with it.
Can you please help me?

Did you try the solution in #9?

Yes I tried it, already done that, but not working. :(

It works perfectly in my demo site, so it's probably an issue with your Facebook setup. If you resolve it, comment here to let others know.


[📖] - FAQ for avatar cache

Describe the context
As mentioned in #70, we add client side cache with 7 days expiry for the avatar image.
Add the FAQ in the homepage to state this cache, just in case someone updating the avatar but not reflected in our App.

Sample FAQ:

Q: Why my avatar doesn't sync with my GitHub?
A: We are using client side cache to reduce the unnecessary request for the same avatar URL. By having a cache, you may face a different visual when you updating the avatar in GitHub. The cache will be refreshed after 7 days, so most likely you will get the new avatar in 7 days.


Multiple Component Fit Vector

Add option to get the fit vectors for multiple components. Perhaps we can add the option to return a dictionary of fit vectors for each line/component in the fit.

This has been implemented in LuciConvenience.get_individual_components().


Hackathon Notes

We want

[ ] developer documentation

[ ] for core developers
[ ] for core dev users

[ ] bioimage archive datasets as model cards on bioimage.io

[ ] next step:  programmatic access for some specific datasets

SAM related

[ ] optional inputs (for points, masks and labels)

cc: @k-dominik @constantinpape @Tomaz-Vieira @ctr26 @anwai98

spec discussion points:

[ ] npy -> netCDF? see https://docs.xarray.dev/en/stable/user-guide/io.html
[ ] take out pre-/postprocessing from io tensors

pipeline discussion points:

[ ] potential micro SAM pipeline


Add a UFS to read from files hosted using http/https protocols

Address #8574
with more fixes based on https://github.com/Alluxio/alluxio/pull/8996

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/3493/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/3494/
Test PASSed.


Injected object throws null reference exception in build, but not in Unity editor

I just ran into this issue where injected object is null in build, but not in Unity editor. The same object has been injected in other objects the same way, but this is the first time this issue has been present. The issue only happens with this one object type, any other object that injects the same class is fine. I don't get any errors from Zenject that would indicate that something went wrong. The null reference exception happens once the code tries to access something on the injected object.
This is how the class is injected (same on other objects where this works)
[Inject] private NetworkHandler networkHandler = default;
Any ideas on what causes this?

@SusiKette
Did u resolve this issue?
Catch the same issue, and have similar issue when try start coroutine in binded script.

Did u resolve this issue?
Catch the same issue, and have similar issue when try start coroutine in binded script.

What helped me:
In Player Settings -> Other Settings
Switch Scripting Backend to IL2Cpp and set Api Compatibility Level to .NET Standard version >= 2.0


Replace the AssetLib tab icon with a less confusing design

This closes https://github.com/godotengine/godot-proposals/issues/818.
Preview
Dark (100% editor scale)

Light (200% editor scale)

Most images (and the bottom part of this image) have a 1-pixel border, but the top of the arrow is 2 pixels from the top of the image. I raised it by one pixel and I think it looks better.

AssetLib.zip

@aaronfranke I added your icon edit, thanks!

Thanks!

Cherry-picked for 3.2.2.


Add tests for logic for data parsing

Ran out of time trying to figure out how to test data parsing logic in Cypress.


PlatformException (PlatformException(ERROR_GEOCODING_COORDINATES, Service not Available, null))

💬 Questions and Help
For questions or help we recommend checking:

The Flutter tag in Stack Overflow

I want to convert latitude and longitude to formatted address. But don't know why it shows me this error now.

Same

same here...

Hello @bijoya-banik, @RakhimyanTim, @pr0thean. I have tested this with our company's address and it gave me the correct response. I used this:
List<Placemark> placemark = await Geolocator().placemarkFromCoordinates(52.221539, 6.893662);

Please make sure to see if the Latitude and Longitude are properly filled in and that you have given the app permission to use the GPS.

@bijoya-banik, @RakhimyanTim, @pr0thean, the "Service not Available" error indicates that an IOException occurred when executing the native call (see Android docs).
Usually this means you don't have internet which is required to translate the longitude / latitude into a physical address.

@mvanbeusekom this issue doesn't reproduce on the emulator in the debug mode, but it's still there in the release apk on my Android device, and I have good internet connection. Please, help with this...

Hello @Apollo108, it is very well possible that the device doesn't have Play Services installed or enabled (maybe blocked by goverment firewalls). The geocoding feature relies on the native Android implementation which means it needs Play Services to be available.

@mvanbeusekom

checked with https://pub.dev/packages/google_api_availability plugin, seems Play Services are OK, and the issue is still here... What am I doing wrong?

@Apollo108 as mentioned earlier, the "Service not Available" indicates that an IOException occurred during the translation of the coordinates. According to the underlying Android SDK we are using this means "IOException is thrown if the network is unavailable or any other  I/O problem occurs".
This is not really something I can help you fix. More information are in the Android docs.


feat(datepicker-popover): adds support of mountNode

Description
It adds support of mountNode attribute to Datepicker and Popover. It creates feature compatibility with Modal.
Scope

[ ] Patch: Bug Fix
[x] Minor: New Feature
[ ] Major: Breaking Change

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Seems like this makes sense – probably something that may need to be supported in any component that uses portal.
Would anyone prefer a getMountNode: () => HTMLElement callback instead of a mountNode: HTMLElement prop? This is something I didn't fully explore when building Modal so I settled on the latter, but I'm wondering if anyone sees benefits to using the callback style:
getPopoverMountNode() {
  return document.querySelector('.fake-body');
}

render() {
  return <Popover getMountNode={this.getPopoverMountNode} ...>
}

vs
getPopoverMountNode() {
  return document.querySelector('.fake-body');
}

render() {
  const mountNode = document.querySelector('.fake-body');
  return <Popover mountNode={mountNode} ...>;
}

If they're essentially the same, then we can roll with whats in the current PR.

@jcemer would you mind updating the jest snapshots / tests?

@nadiia @gergelyke I fixed the tests.

thanks @jcemer ! would you mind signing our CLA ? https://cla-assistant.io/uber-web/baseui?pullRequest=901

@gergelyke done.

What is the use-case of using custom mountNode for any of those components? SSR?

@tajo It is for the cases there is a need to attach the popover in another element than document.body.
In our case, we are rendering inside an iframe using a portal. The popover is mounting in the parent window so there is a need to have mountNode to set it to the document.body of the iframe. The modal already allows us to define it.

@nadiia @chasestarr @gergelyke I updated the branch, let me know if there is something missing. It would be great to have it since datepicker is stable now 🎉

thanks, @jcemer! as Nadiia recommended, can you please add test coverage?

@gergelyke @nadiia could you advise how to write it because I couldn't find a test that covers it in the modal component.

Let's merge this change as is.

@jcemer would you mind resolving this (hopefully) last merge conflict? We'll land it after that's done

and thanks for your patience! :)

@gergelyke done :)

take a look at these docs for running the e2e tests: https://github.com/uber-web/baseui/blob/master/TESTING.md

Merging. Thanks again for the contribution!


Training

Great job. But I have a question about the dataset. How did .npy formed? How can I use my own dataset for model training?

Thanks!
The .npy files are obtained from the Sentinel-2 tiles we downloaded from THEIA, and we use the French Land Parcel Identification System for the annotations.
You can have a look at pastis-benchmark/documentation/pastis-documentation.pdf for more details on the different steps.


Add OSX and Windows builds

This is a quick attempt to see if we can add a Windows and an OSX build with minimal extra configuration.

pre-commit.ci autofix

@pradyunsg figured out the windows bug in https://github.com/pradyunsg/sphinx-theme-builder/issues/9?notification_referrer_id=NT_kwDOABwSHbIyODgyNjM5NTg2OjE4Mzk2NDU#issuecomment-1005053739 so let's see if this now works as expected.
If the tests pass then I'll merge this in, and maybe @drammock can give it a shot once more from windows.

OK tests are happy, so I'm going to consider #523 resolved! But if somebody tries this on windows and it doesn't work, we can re-open and spot-check


Detect when key up or down

If a user presses a key, holds it for 3 seconds, and then releases it, is it possible to know when the key-up and key-down happened?

please ignore me 😅


React Group Project

Dear Code Reviewer,
Here is the link to the GitHub project : GitHub Project
And I would like to tell you, in my team we are only a group of two person.
Best regards,
@jecode93

Hello @jecode93   & @boniface193    , :wave:
I'm Levy, your PR reviewer
Good job so far :+1:
There are some issues that you still need to work on to go to the next project but you are almost there!

Status: REQUIRED CHANGES ♻
Check the comments under the review.

[ ] Kindly assign the group task cards to all group members. We should see a circle with both member's avatars on the group task card. See the example below:

Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me @levy002 in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


what happened to "transaction do" of capistrano 2.x?

trying to migrate my cap script to version 3... but cannot find anything on what to do with transaction do?

We must be missing something. Having a way to deal with shell commands that fail seems like an integral part of capistrano. Is it just semantics? Is there some analog to transaction do in Cap 3 that we just aren't aware of?
If you write any command-running code that uses capistrano, it seems like transactions are very useful and a no-brainer... i.e. if any given command fails, you can decide how it should be undone. I'm not entirely sure what you are suggesting here. I haven't used capistrano 3 yet, but if transaction support (do X if command Y fails) has been removed, I don't think I'll consider it.

Sorry, as was stated above, these features are no longer present in Capistrano.
I'm assuming transaction do... and on_rollback were removed for a reason, but I can't offer any insight into that decision. What I can do for you is summarize the current behavior, which is also explained in the official docs.
If a deployment fails, the deploy:failed task is invoked, but otherwise there is nothing automatic in terms of failure/rollback/transaction behavior.
In response to a failure, you can manually run cap <stage> deploy:rollback, which changes the current symlink to point to the previous release. It also invokes these rollback-specific tasks, allowing you to hook in additional behavior if you need it:
deploy:reverting
deploy:reverted
deploy:finishing_rollback

Thank you for responding. I love Capistrano and have used it for many years. I'm trying to understand what the designers of the new version intended.

If a deployment fails

So, is it inadvisable to use capistrano for anything other than deploys? The docs certainly tout capistrano as a generic automation tool.
But this sounds like a fatal flaw for an automation tool (from the docs):

when a task fails on one server by exiting with a non-0 exit code, Capistrano closes the SSH connections to any still in-progress servers and their tasks exit.

This seems crazy. I don't see how tasks can be designed such that they would leave their systems in a consistent state no matter which of their individual commands was aborted and killed in the middle of execution. If only there were some mechanism to run command X to clean up state when command Y fails.
I swear I must be missing something. Am I asking the wrong question? Imagine if databases had no transactional support and would leave any update query half-applied if it hit an error.

@danielbeardsley I don't want to leave you hanging, but I can't really provide any more help here. I don't want to speculate on the design intentions, and I've already answered your questions regarding hooks for automatic rollback/cleanup behavior (there aren't any).
In my years of using Capistrano I have not encountered this use case, so I can't offer any workarounds. I write my tasks in such a way that if they were to fail, I can just run them a second time.
Perhaps you can roll your own behavior with standard Ruby exception-handling constructs, like:
failed_hosts = []
on roles(:all) do |host|
  begin
    execute "some command that must be cleaned up if it fails"
  rescue SSHKit::Command::Failed
    failed_hosts << host
  end
end

if failed_hosts.any?
  # do something
end

I don't know if that even makes sense or if it would work; again, I have never come across the need for it.
If you do come across a good solution or a simple change to the code that would improve things from your perspective, we of course welcome PRs to both the code itself and to the documentation.

I'm trying to understand what the designers of the new version intended.

The designers were myself and @seenmyfate - and the intent was to remove a misleading feature, and simplify the rather confusing error handling of the v.2 branch.
Above all the transaction nomenclature was dropped as it's precisely not a transaction, we can't do disk/state level transactions over SSH, if you have made changes and something within the "transaction" fails, nothing magic happens to roll it back.

But this sounds like a fatal flaw for an automation tool (from the docs):

when a task fails on one server by exiting with a non-0 exit code, Capistrano closes the SSH connections to any still in-progress servers and their tasks exit.

Right, we close the SSH connections (connection pooling not withstanding) and then re-open them in your recovery handlers.
The previous rollback behaviour was totally, totally inconsistent and never really worked. Some plugins (Rails) had semi-OK handling, but it was hugely, hugely dependent on which version of Rails/Bundler and the asset pipeline one had.
The new design allows you to catch errors in your own way, we have a formalized test() API which can be used (but, seldom is) to make assertions.
It also allows you to initiate the deploy:rollback (Rake::Task['deploy:rollback'].invoke task
It's important to note that the deploy:rollback calls are there as part of the documented flow for plugins to use, if you have your own recovery/rollback tasks for specific cases of tasks, you should write your own rollback handlers.
Please don't read this as aggressively as I appear to have written it, there's just a lot of detail, and people expected (and were formerly disappointed by) a lot of magic. :rocket:

Also @maliqq @mattbrictson for what it's worth you don't need to use rescue SSHKit::Command::Failed, you can either use test() or get similar behaviour from execute('...', raise_on_non_zero_exit: false) which is essentially what test() does to wrap execute() anyway. (it also changes the log level, since tests tend to be noisy, and not very useful.)

I really appreciate the responses, Thank you!

as it's precisely not a transaction
That totally makes sense. on_failure could have been a better name.

Ok. Seems like I might be able to mimc the old behavior by wrapping the execute function.

I write my tasks in such a way that if they were to fail, I can just run them a second time. - @mattbrictson
I feel like in nearly every case of server automation I can think of, leaving a machine in an inconsistent state would be a bad thing (i.e. something half-installed, some directory half-copied, some group of files half-chowned, half of a group of servers in one state and half in another), even for a little while between when it fails and when you decide it's a good idea to run it again.

Mostly, I was just surprised this isn't a more common use-case, i.e. to be able to recover from some half-applied command so that all machines are in a consistent state.

Mostly, I was just surprised this isn't a more common use-case, i.e. to be able to recover from some half-applied command so that all machines are in a consistent state.

Honestly most people choose to retry the deploy, or "rollback" by deploying an older tag/version. For much the same reason that real transactional systems bail out and refuse to continue if they get into a half-applied state, it's better just to try again than try and fix whatever happened.
Granted this works better when you're in a sandbox of a directory you don't have to symlink, and works less well for installing/changing system packages for libraries or programmes.


Convert to python 3

Because using outdated versions of software annoys me :P

Python 2.7.13 is not outdated software, it was released just last December. Furthermore, changing print statements is not the limit of what would be required to fully port Rowboat to 3.x.
At this time it's not worth the effort or time, I specifically used 2.7 for this project because it's general IO performance still beats out 3.6. I expect some of the planned changes in 3.7 and onwards may change that, but for now I don't really care.
If you'd like to do this, do it in your own fork. I'm not planning on upstreaming it.

Weird, because python3 -m compileall . works for me...
Whatever, you decide.


Improv: check pre-requesites

check if

zsh
wget
curl
git
are available and fail the setup if not

this might be as easy as running a which zsh wget curl git and checking if the output has all of them at the trailing side of each line (because we wouldn't want to say /zsh/wget/curl/git is a correct output, this is just a user trying to screw things up)

rather, the exit code of the which command can be used.


Extension for Spicetify

Requested Feature
Hi! First of all, Thank you so much for this amazing software.
I have made Spicetify extension of this to make more easily to download songs.
https://github.com/FoxRefire/spiceDL
Devs, do you have any plan of maintain Spicetify extension officially?
If not, close this issue please,I intend to maintain this personally.
Possible implementation
No response

Hiya.
Thanks for this. We do not have the developer capacity to officially support this, however we are happy to provide you support in this. Feel free to reach out on the Discord server with any questions!

Further, feel free to contribute to spotDL and join our team!


Unexpectatedly Stopping

jdownloader:
environment:
- VNC_PASSWORD=XXXX
- USER_ID=1000
- GROUP_ID=1000
restart: always
image: jlesage/jdownloader-2
ports:
- 5800:5800/tcp
- 5900:5900/tcp
volumes:
- /Downloads:/output
- /docker/appdata/jdownloader-2:/config:rw

Log:

11/07/2020 12:24:34 Xinerama is present and active (e.g. multi-head).
11/07/2020 12:24:34 Xinerama: number of sub-screens: 1
11/07/2020 12:24:34 Xinerama: no blackouts needed (only one sub-screen)
11/07/2020 12:24:34
11/07/2020 12:24:34 fb read rate: 801 MB/sec
11/07/2020 12:24:34 fast read: reset -wait  ms to: 10
11/07/2020 12:24:34 fast read: reset -defer ms to: 10
11/07/2020 12:24:34 The X server says there are 10 mouse buttons.
11/07/2020 12:24:34 screen setup finished.
11/07/2020 12:24:34
The VNC desktop is:      ddfbd6c2d685:0
0
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?
The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:
x11vnc -ncache 10 ...
One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching
11/07/2020 12:25:00 Got connection from client <IP_ADDRESS>
11/07/2020 12:25:00   other clients:
11/07/2020 12:25:00 Got 'ws' WebSockets handshake
11/07/2020 12:25:00 Got protocol: binary
11/07/2020 12:25:00   - webSocketsHandshake: using binary/raw encoding
11/07/2020 12:25:00   - WebSockets client version hybi-13
11/07/2020 12:25:00 Disabled X server key autorepeat.
11/07/2020 12:25:00   to force back on run: 'xset r on' (3 times)
11/07/2020 12:25:00 incr accepted_client=1 for <IP_ADDRESS>:56576  sock=10
11/07/2020 12:25:00 Client Protocol Version 3.8
11/07/2020 12:25:00 Protocol version sent 3.8, using 3.8
11/07/2020 12:25:00 rfbProcessClientSecurityType: executing handler for type 2
11/07/2020 12:25:00 created   xdamage object: 0x40002c
11/07/2020 12:25:01 copy_tiles: allocating first_line at size 41
11/07/2020 12:25:10 created selwin: 0x40002d
11/07/2020 12:25:10 called initialize_xfixes()
11/07/2020 12:25:14 got closure, reason 1001
11/07/2020 12:25:14 rfbAuthProcessClientMessage: read: Connection reset by peer
11/07/2020 12:25:14 client_count: 0
11/07/2020 12:25:14 Restored X server key autorepeat to: 1
11/07/2020 12:25:14 Client <IP_ADDRESS> gone
11/07/2020 12:25:14 Statistics             events    Transmit/ RawEquiv ( saved)
11/07/2020 12:25:14  TOTALS              :      0 |         0/        0 (  0.0%)
11/07/2020 12:25:14 Statistics             events    Received/ RawEquiv ( saved)
11/07/2020 12:25:14  TOTALS              :      0 |         0/        0 (  0.0%)
11/07/2020 12:25:14 destroyed xdamage object: 0x40002c
11/07/2020 12:25:14 Got connection from client <IP_ADDRESS>
11/07/2020 12:25:14   other clients:
11/07/2020 12:25:14 Got 'ws' WebSockets handshake
11/07/2020 12:25:14 Got protocol: binary
11/07/2020 12:25:14   - webSocketsHandshake: using binary/raw encoding
11/07/2020 12:25:14   - WebSockets client version hybi-13
11/07/2020 12:25:14 Disabled X server key autorepeat.
11/07/2020 12:25:14   to force back on run: 'xset r on' (3 times)
11/07/2020 12:25:14 incr accepted_client=2 for <IP_ADDRESS>:60550  sock=10
11/07/2020 12:25:14 Client Protocol Version 3.8
11/07/2020 12:25:14 Protocol version sent 3.8, using 3.8
11/07/2020 12:25:14 rfbProcessClientSecurityType: executing handler for type 2
11/07/2020 12:25:15 created   xdamage object: 0x40002e
11/07/2020 12:25:19 client_set_net: <IP_ADDRESS>  0.0001
11/07/2020 12:25:20 Pixel format for client <IP_ADDRESS>:
11/07/2020 12:25:20   32 bpp, depth 24, little endian
11/07/2020 12:25:20   true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
11/07/2020 12:25:20 no translation needed
11/07/2020 12:25:20 Enabling NewFBSize protocol extension for client <IP_ADDRESS>
11/07/2020 12:25:20 Enabling full-color cursor updates for client <IP_ADDRESS>
11/07/2020 12:25:20 Using image quality level 6 for client <IP_ADDRESS>
11/07/2020 12:25:20 Using JPEG subsampling 0, Q79 for client <IP_ADDRESS>
11/07/2020 12:25:20 Using compression level 9 for client <IP_ADDRESS>
11/07/2020 12:25:20 Enabling LastRect protocol extension for client <IP_ADDRESS>
11/07/2020 12:25:20 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0xFFFFFECC)
11/07/2020 12:25:20 Using tight encoding for client <IP_ADDRESS>
11/07/2020 12:25:21 client 2 network rate 282.1 KB/sec (4449.4 eff KB/sec)
11/07/2020 12:25:21 client 2 latency:  25.6 ms
11/07/2020 12:25:21 dt1: 0.0018, dt2: 0.0536 dt3: 0.0256 bytes: 12017
11/07/2020 12:25:21 link_rate: LR_UNKNOWN - 25 ms, 282 KB/s
[jdsupervisor] JDownloader2 no longer running.

Can you look at JDownloader log files ?  You can find them under the directory you mapped to /config.

https://ufile.io/ksbhye1r

Do you see the same issue if you run:
docker run --rm jlesage/jdownloader-2

If yes, can you provide the full output of the command ?

Closing the issue, please reopen if needed.


Fonts in docs not like on example

Bug Report
Fonts in docs not like on example
example

im my project

Yes, we change the title font. If you don't like it, you can change it on your doczrc.js:
export default {
  themeConfig: {
    styles: {
      h1: {
        fontFamily: 'Your font here',
      }
    }
  }
}


allow for scrolling through rules, and other ways to organize them

when i have a bunch of rules, the only way to see the new ones is to zoom out.  but that can get annoying with a bunch of rules. what if you could drag rules between windows, drag the windows into other windows, colapse windows, name windows, and more to help with organization?

Use alt+scroll to scroll through the paddles. (control+scroll on Mac)
Collapsing a paddle deletes it, but being able to name windows and put them into diffferent groups would be really helpful.

Use alt+scroll to scroll through the paddles. (control+scroll on Mac)
Collapsing a paddle deletes it, but being able to name windows and put them into diffferent groups would be really helpful.

thanks!


Fix: Fix TCP Ping hostname Regex

Closes #449
Since the hostname regex doesn't work, I have modified it slightly, with an assumption that TLDs cannot end with a number, which I checked the IANA list seems to be the case.
Because there are manual modifications, I have made a number of test cases, and it seems to work fine. You can check them here:
regexr.com/660vm
Edit: I think our main failure was disabling ESLint, since it actually caught an error by us. "Unnecessary escape" is shown, because the backslashes were not meant as escape at all! They are used to indicate a literal in the regex, but when you put it in a JS string, it became an escape indicator, which I think might be the only thing that broke the regex. Nonetheless my version seems to work okay too.

Ohh Perfect, thank you!

with an assumption that TLDs cannot end with a number, which I checked the IANA list seems to be the case.

Is this standard also apply to local addresses? Because there are actually some local addresses end with a number in my Tailscale network and Docker network.

Tested with https://github.com/louislam/uptime-kuma/pull/452/commits/5b2e1f608630c09788782c36d29c57b2ccab5004
zenfone6 is ok.
My another local address win2019 do not pass.

Damn there's always another edge case. I'm starting to think there is no good way to handle this. The problem is an invalid IP like 384.324.324.39 is a valid hostname according to the relaxed rules. I tried another regex in the wild and it seems to also do this. If we are willing to accept this limitation, we can just use the original regex (with the backslash fix).

Damn there's always another edge case. I'm starting to think there is no good way to handle this. The problem is an invalid IP like 384.324.324.39 is a valid hostname according to the relaxed rules. I tried another regex in the wild and it seems to also do this. If we are willing to accept this limitation, we can just use the original regex (with the backslash fix).

I agree, just do not allow : is enough to prevent users input port number at the end.

reverted to original regex with backslash fixed.


[SPARK-12060][Core]Avoid memory copy in JavaSerializerInstance.serialize

JavaSerializerInstance.serialize uses ByteArrayOutputStream.toByteArray to get the serialized data. ByteArrayOutputStream.toByteArray needs to copy the content in the internal array to a new array. However, since the array will be converted to ByteBuffer at once, we can avoid the memory copy.
This PR added ByteBufferOutputStream to access the protected buf and convert it to a ByteBuffer directly.

LGTM pending tests.

Test build #46912 has started for PR 10051 at commit 4711b83.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/46915/
Test FAILed.

retest this please

Test build #46917 has started for PR 10051 at commit 4f35437.

Test build #46912 has finished for PR 10051 at commit 4711b83.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/46912/
Test PASSed.

Merged build finished. Test PASSed.

Test build #46917 has finished for PR 10051 at commit 4f35437.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/46917/
Test PASSed.

Yeah that looks nice, low-touch too.

Merging to master and 1.6

Just found a lot places use ByteBuffer.array directly and this patch will break them. Just reverted it before fixing the ByteBuffer.array issue.


Service Worker intercepting some API calls and changing IdToken to AccessToken

Issue and Steps to Reproduce

Versions
7.7.2
Screenshots

First please take a look here for one request we are doing "two" but the one is from service worker

The first request (without the cog icon) is done with the right id_token (I've tested it on postman an it works)
You can also see that the error code 401 has info inside the brackets (401 Unauthorized (from service worker))

The second one, the service worker one has changed the id_token for access_token. Don't know why...

Expected
The app asks the proper API endpoint with valid Bearer Token (Bearer + IdToken) and returns what postman is returning.
Actual
It seems like the service worker is intercepting some of the requests and changing the Bearer token from:
Bearer + Id_token to Bearer + Access_token
Additional Details
My configuration:
const configuration: OidcConfiguration = {
  authority: window.AUTH.AUTHORITY,
  client_id: window.AUTH.CLIENT_ID,
  redirect_uri: window.location.origin + "/authentication/callback",
  silent_redirect_uri:
    window.location.origin + "/authentication/silent-callback",
  scope: `openid profile email offline_access ${userMetadataScope} ${projectRolesScope} ${audienceScope}`, // offline_access scope allow your client to retrieve the refresh_token
  service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode
  service_worker_only: false,
  demonstrating_proof_of_possession: false, // demonstrating proof of possession will work only if access_token is accessible from the client (This is because WebCrypto API is not available inside a Service Worker)
};

Hi @pr0xyMity ,thank you for your issue.
I am interrested to know of what did you do to resolve it?

Hi @guillaume-chervet
this was caused by one missing middleware in on of the api services. All accepted accessTokens but only one was missing the middleware to handle this.
This wasn't a library issue ;)
Enjoy your vacation!


error: package android.support.annotation does not exist

Task :react-native-nfc-manager:compileDebugJavaWithJavac FAILED
/node_modules/react-native-nfc-manager/android/src/main/
java/community/revteltech/nfc/NfcManager.java:10: error: package android.support.annotation does not exist
import android.support.annotation.Nullable;

Getting this error using React Native 0.59.4
I think it's something related to AndroidX.
Jetify didn't solve this tho.

@dotpegaso sounds like that, can you try to use npm i --save react-native-nfc-manager@beta to see if it works? I have include the androidX support in beta release, because I thought it is only required in RN >= 0.60.

Works, thanks!


Building a training set of tags for red

Hello lovely maintainers :wave:
We've recently added "tags" to student's solutions. These express the constructs, paradigms and techniques that a solution uses. We are going to be using these tags for lots of things including filtering, pointing a student to alternative approaches, and much more.
In order to do this, we've built out a full AST-based tagger in C#, which has allowed us to do things like detect recursion or bit shifting. We've set things up so other tracks can do the same for their languages, but its a lot of work, and we've determined that actually it may be unnecessary. Instead we think that we can use machine learning to achieve tagging with good enough results. We've fine-tuned a model that can determine the correct tags for C# from the examples with a high success rate. It's also doing reasonably well in an untrained state for other languages. We think that with only a few examples per language, we can potentially get some quite good results, and that we can then refine things further as we go.
I released a new video on the Insiders page that talks through this in more detail.
We're going to be adding a fully-fledged UI in the coming weeks that allow maintainers and mentors to tag solutions and create training sets for the neural networks, but to start with, we're hoping you would be willing to manually tag 20 solutions for this track. In this post we'll add 20 comments, each with a student's solution, and the tags our model has generated. Your mission (should you choose to accept it) is to edit the tags on each issue, removing any incorrect ones, and add any that are missing. In order to build one model that performs well across languages, it's best if you stick as closely as possible to the C# tags as you can. Those are listed here. If you want to add extra tags, that's totally fine, but please don't arbitrarily reword existing tags, even if you don't like what Erik's chosen, as it'll just make it less likely that your language gets the correct tags assigned by the neural network.

To summarise - there are two paths forward for this issue:

You're up for helping: Add a comment saying you're up for helping. Update the tags some time in the next few days. Add a comment when you're done. We'll then add them to our training set and move forward.
You not up for helping: No problem! Just please add a comment letting us know :)

If you tell us you're not able/wanting to help or there's no comment added, we'll automatically crowd-source this in a week or so.
Finally, if you have questions or want to discuss things, it would be best done on the forum, so the knowledge can be shared across all maintainers in all tracks.
Thanks for your help! :blue_heart:

Note: Meta discussion on the forum

Exercise: two-fer
Code
Red [
	description: {"Two-fer" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

two-fer: function [
	name [string! none!]
] [
	whom: either name = none ["you"][name]

	return rejoin ["One for " whom ", one for me."]
]

Tags:
construct:assignment
construct:block
construct:comment
construct:function
construct:header
construct:if
construct:invocation
construct:logical-or
construct:none
construct:parameter
construct:return
construct:string
construct:word
construct:variable
construct:whitespace
construct:yes-no
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:logical-operators

Exercise: resistor-color
Code
Red [
	description: {"Resistor Color" exercise solution for exercism platform}
	author: "Koba-yu"
]

color-code: function [
	color
] [
	switch color [
		"black"		[0]
		"brown"		[1]
		"red"		[2]
		"orange"	[3]
		"yellow"	[4]
		"green"		[5]
		"blue"		[6]
		"violet"	[7]
		"grey"		[8]
		"white"		[9]
	]
]

colors: function [] [
	["black" "brown" "red" "orange" "yellow" "green" "blue" "violet" "grey" "white"]
]

Tags:
construct:assignment
construct:block
construct:function
construct:parameter
construct:red-block
construct:switch
construct:word
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:control-flow

Exercise: resistor-color
Code
Red [
	description: {"Resistor Color" exercise solution for exercism platform}
	author: "Ken Wilcox" ; you can write your name here, in quotes
]

color-code: function [
	color
] [
	(index? find colors color) - 1
]

colors: [
	"black"
	"brown"
	"red"
	"orange"
	"yellow"
	"green"
	"blue"
	"violet"
	"grey"
	"white"
]

Tags:
construct:assignment
construct:block
construct:function
construct:group
construct:indexer
construct:integer
construct:literal
construct:parenthesized
construct:reduce
construct:subtract
construct:word
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:higher-order-functions

Exercise: protein-translation
Code
Red [
	description: {"Protein Translation" exercise solution for exercism platform}
	author: "Ken Wilcox"
]

proteins: function [
	strand
] [
	parse strand [collect any [
		"AUG" 									keep ("Methionine")
		| "UGG"									keep ("Tryptophan")
		| ["UUU" | "UUC"]						keep ("Phenylalanine")
		| ["UUA" | "UUG"]						keep ("Leucine")
		| ["UCU" | "UCC" | "UCA" | "UCG"]		keep ("Serine")
		| ["UAU" | "UAC"]						keep ("Tyrosine")
		| ["UGU" | "UGC"]						keep ("Cysteine")
		| ["UAA" | "UAG" | "UGA"] thru end
    ]]
]

Tags:
construct:collect
construct:function
construct:parameter
construct:pattern
construct:reduce
construct:string
construct:word
paradigm:functional
paradigm:declarative
technique:higher-order-functions

Exercise: space-age
Code
Red [
    description: { "Space Age" exercise solution for exercism platform }
    author: "Anthony J. Borla (ajborla@bigpond.com)"
]

age: function [
    "Given a planet name, and a person's age in seconds, returns the person's age in planet years"
    planet [string!] "Name of planet"
    seconds [integer!] "Age of person"
    return: [float!]
] [
    age-years: function [
        orbital-period [float!]
        return: [float!]
    ][
        EARTH-YEAR-SECONDS: 31557600.0
        age: seconds / (EARTH-YEAR-SECONDS * orbital-period)
        round/to age .01
    ]

    switch planet [
      "Mercury" [ age-years 0.2408467 ]
      "Venus"   [ age-years 0.61519726 ]
      "Earth"   [ age-years 1.0 ]
      "Mars"    [ age-years 1.8808158 ]
      "Jupiter" [ age-years 11.862615 ]
      "Saturn"  [ age-years 29.447498 ]
      "Uranus"  [ age-years 84.016846 ]
      "Neptune" [ age-years 164.79132 ]
    ]
]

Tags:
construct:divide
construct:float
construct:fraction
construct:function
construct:integer
construct:local
construct:multiply
construct:number
construct:parameter
construct:return
construct:switch
construct:word
paradigm:functional
paradigm:object-oriented
technique:math

Exercise: raindrops
Code
Red [
    description: {"Raindrops" exercise solution for exercism platform}
    author: ""
]

factor-sounds: [
    3 "Pling"
    5 "Plang"
    7 "Plong"
]

convert: function [ number ] [
    sounds: rejoin collect [
            foreach [factor sound] factor-sounds [
                        if zero? number % factor [keep sound]
                    ]
        ]
    either empty? sounds [to string! number][sounds]
]

Tags:
construct:assignment
construct:bitwise-and
construct:bitwise-or
construct:bitwise-xor
construct:block
construct:boolean
construct:collect
construct:comment
construct:datatype
construct:function
construct:if
construct:integer
construct:invocation
construct:loop
construct:number
construct:parameter
construct:reduce
construct:rejoin
construct:string
construct:variable-visibility
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:bit-manipulation
technique:bit-shifting
technique:looping
uses:bitwise-operations

Exercise: raindrops
Code
Red [
    description: { "Raindrops" exercise solution for exercism platform }
    author: "Anthony J. Borla (ajborla@bigpond.com)"
]

convert: function [
    "Converts a number corresponding to raindrop sounds, into words"
    number [integer!] "Number to convert"
    return: [string!]
] [
    message: copy []
    foreach [divisor response] [3 "Pling" 5 "Plang" 7 "Plong"] [
        if number // divisor = 0 [
            append message response
        ]
    ]
    if (length? message) = 0 [
        append message to-string number
    ]
    to-string message
]

Tags:
construct:assignment
construct:comment
construct:copy
construct:foreach
construct:function
construct:if
construct:integer
construct:invocation
construct:length
construct:parameter
construct:reduce
construct:to
construct:word
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:enumeration
technique:looping

Exercise: resistor-color-duo
Code
Red [
	description: {"Resistor Color Duo" exercise solution for exercism platform}
	author: "dander"
]

value: function [
	colors
] [
	values: collect [foreach color colors [
		keep (index? find color-list color) % 10
    ]]

	to integer! rejoin take/part values 2
]

color-list: [
    "brown"
    "red"
    "orange"
    "yellow"
    "green"
    "blue"
    "violet"
    "grey"
    "white"
    "black"
]

Tags:
construct:assignment
construct:collect
construct:color
construct:comment
construct:function
construct:integer
construct:index
construct:integer!
construct:invocation
construct:loop
construct:parenthesized
construct:rebol
construct:rejoin
construct:string
construct:take
construct:variable-visibility
construct:visibility
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:looping

Exercise: rotational-cipher
Code
Red [
	description: {"Rotational Cipher" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

rotate: function [
	text
	shiftKey
] [
	result: copy ""
	foreach char text [
		cipher-text: get-ciphertext char shiftkey
		append result cipher-text
    ]
	result
]

get-ciphertext: function [
	char
	shiftkey
] [
	alphabets: "abcdefghijklmnopqrstuvwxyz"
	search-result: find alphabets char

	if none? search-result [
		return char
    ]

	shift-index: (index? search-result) + shiftkey
	cipher-index: (mod (shift-index - 1) length? alphabets) + 1

	alphabets/:cipher-index
]

Tags:
construct:add
construct:assignment
construct:comment
construct:foreach
construct:function
construct:if
construct:index
construct:integer
construct:invocation
construct:parameter
construct:return
construct:string
construct:subtract
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:looping

Exercise: rotational-cipher
Code
Red [
	description: {"Rotational Cipher" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

rotate: function [
	text
	shiftKey
] [
	code: ""
	u-ascii: charset [#"A" - #"Z"]
	l-ascii: charset [#"a" - #"z"]
	foreach chr text [
		case [
			find/case u-ascii chr [chr: (mod (chr + shiftkey - 65) 26) + 65]
			find/case l-ascii chr [chr: (mod (chr + shiftkey - 97) 26) + 97]
		]
		append code to-string chr
	]
	return code
]

Tags:
construct:add
construct:append
construct:assignment
construct:bitset
construct:case
construct:char
construct:comment
construct:curly-brackets
construct:each
construct:function
construct:integer
construct:invocation
construct:parameter
construct:reduce
construct:return
construct:string
construct:subtract
construct:to
construct:variable
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:bit-manipulation
technique:bit-shifting
technique:enumeration
technique:looping

Exercise: resistor-color-trio
Code
Red [
    description: { "Resistor Color Trio" exercise solution for exercism platform }
    author: "Anthony J. Borla (ajborla@bigpond.com)"
]

label: function [
    "Returns resistor color band values"
    colors [block!] "List of resistor band colors"
    return: [integer!]
] [
    color-digit-names: copy/part colors 2
    color-zero-name: last colors

    color-name-value-pairs: [
        "black" 0 "brown" 1 "red" 2 "orange" 3 "yellow" 4
        "green" 5 "blue" 6 "violet" 7 "grey" 8 "white" 9
    ]

    resistor-value: []
    foreach [name] color-digit-names [
        color-name-value: find color-name-value-pairs name
        if not none? color-name-value [
            append resistor-value (second color-name-value)
        ]
    ]
    resistor-value: to-integer to-string resistor-value

    resistor-exponent: 0
    color-zero-value: find color-name-value-pairs color-zero-name
    if not none? color-zero-value [
        resistor-exponent: second color-zero-value
    ]

    resistor-value: resistor-value * (power 10 resistor-exponent)

    unit-value: "ohms"
    if (resistor-value // 1000) = 0 [
        resistor-value: resistor-value / 1000
        unit-value: "kiloohms"
    ]

    m: make map! []
    m/value: resistor-value
    m/unit: unit-value
    m
]

Tags:
construct:assignment
construct:block
construct:divide
construct:foreach
construct:function
construct:if
construct:integer
construct:label
construct:list
construct:make
construct:map
construct:multiply
construct:number
construct:parameter
construct:reduce
construct:string
construct:word
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:enumeration
technique:looping
uses:map!

Exercise: resistor-color-trio
Code
Red [
	description: {"Resistor Color Trio" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]
codes: make map! [
	"black" 0
	"brown" 1
	"red" 2
	"orange" 3
	"yellow" 4
	"green" 5
	"blue" 6
	"violet" 7
	"grey" 8
	"white" 9
]
resist: function [
	colors
] [
	res: 0
	repeat i min length? colors 2 [
		res: res * 10 + select codes colors/:i
	]
	res
]
label: function [
	colors
] [
	digits: resist colors ; convert first 2 digits
	multiple: select codes colors/3 ; find multiple
	val: digits * power 10 multiple ; apply multiple to digits
	unit: "ohms" ; default unit to ohms
	if val % 1000 = 0 [ ; if overall value ends with "000" (2000 yes, 1200 no), then adjust
		val: to integer! val / 1000
		unit: "kiloohms"
	]
	make map! reduce ['value val 'unit unit]
]

Tags:
construct:add
construct:assignment
construct:comment
construct:date
construct:divide
construct:function
construct:integer
construct:index
construct:make-map
construct:map
construct:multiply
construct:number
construct:parameter
construct:readme
construct:red
construct:red-word
construct:reduce
construct:repeat
construct:string
construct:word
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:higher-order-functions
technique:looping

Exercise: resistor-color-trio
Code
Red []

label: function [
    colors [block!]
    return: [map!]
] [
    get-resistance-map copy colors
]

color-to-value: function [
    "Translate color to value"
    color   [string!]   "color to translate"
    return: [integer!]
] [
    color-list: ["black" "brown" "red" "orange" "yellow" "green" "blue" "violet" "grey" "white"]
    (index? find color-list color) - 1
]

get-multiplier: function [
    "Get number of zeroes, determined by value of last(right-most) band"
    colors   [block!]
    return: [integer!]
] [
    zero-band-color: take/last colors
    color-value: color-to-value zero-band-color
    10 ** color-value
]

calc-resistance-value: function [
    "Calculate resistance value based on color-bands provided"
    colors  [block!]
    return: [integer!]
] [
    multiplier: get-multiplier copy colors
    result: 0

    take/last colors
    reverse colors

    repeat i length? colors [
        color-value:  color-to-value colors/:i
        result: result + (color-value * (10 ** (i - 1)))
    ]
    result * multiplier
]

get-resistance-map: function [
    "Formats calculation result"
    colors [block!]
    return: [map!]
] [
    resistance-value: calc-resistance-value copy colors
    is-kilo: (remainder resistance-value 1000) = 0 and (resistance-value > 0)

    either is-kilo [
        make map! reduce [
            'value resistance-value / 1000
            'unit "kiloohms"
        ]
    ] [
        make map! reduce [
            'value resistance-value
            'unit "ohms"
        ]
    ]
]

Tags:
construct:add
construct:and
construct:assignment
construct:block
construct:boolean
construct:divide
construct:double
construct:either
construct:expression
construct:floating-point
construct:function
construct:implicit-conversion
construct:index
construct:integer
construct:label
construct:length
construct:logical
construct:map
construct:math
construct:multiply
construct:number
construct:parameter
construct:reduce
construct:repeat
construct:return
construct:string
construct:subtract
construct:take
construct:tuple
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
technique:looping

Exercise: high-scores
Code
Red [
	description: {"High Scores" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

scores: function [
	scores
] [
	scores
]

latest: function [
	scores
] [
	scores/(length? scores)
]

personal-best: function [
	scores
] [
	latest (sort copy scores)
]

personal-top-three: function [
	scores
] [
	sorted-scores: sort/reverse copy scores
	copy/part at sorted-scores 1 3
]

latest-after-top-three: function [
	scores
] [
	non-top-three: scores-after-top-three scores
	non-top-three/(length? non-top-three)
]

scores-after-top-three: function [
	scores
] [
	top-three: personal-top-three scores
	difference scores top-three
]

Tags:
construct:assignment
construct:comment
construct:function
construct:invocation
construct:length
construct:parenthesized-expression
construct:reduction
construct:word
paradigm:functional
paradigm:imperative
paradigm:reflective

Exercise: high-scores
Code
Red [
	description: {"High Scores" exercise solution for exercism platform}
]

scores: function [
	scores
] [
	scores
]

latest: function [
	scores
] [
	last scores
]

personal-best: function [
	scores
] [
	max: 0
	foreach score scores [
		if score > max [max: score]
    ]
	max
]

personal-top-three: function [
	scores
] [
	scores: copy scores
	sort/reverse scores
	res: []
	loop 3 [unless tail? scores [append res scores/1 scores: next scores]]
	res
]

latest-after-top-three: function [
	scores
] [
	scores: copy scores
	sort/reverse scores
	scores/4
]

Tags:
construct:assignment
construct:block
construct:copy
construct:foreach
construct:function
construct:if
construct:index
construct:integer
construct:loop
construct:number
construct:parameter
construct:red-block
construct:red-word
construct:reduction
construct:sort
construct:variable-get
construct:variable-set
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
technique:looping

Exercise: simple-linked-list
Code
Red [
	description: {"Simple Linked List" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

from-array-and-back: function [
	array
] [
	array
]

convert-reverse-convert-back: function [
	array
] [
	res: []
	while [(length? array) > 0] [
		insert res first array
		array: next array
    ]
	:res
]

Tags:
construct:assignment
construct:boolean
construct:comment
construct:function
construct:invocation
construct:logical-and
construct:parameter
construct:red-block
construct:red-function
construct:red-word
construct:variable-get
construct:while-loop
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:looping
uses:LinkedList

Exercise: bowling
Code
Red [
	description: {"Bowling" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

game: make object! [
	frames: []
	prev: -1
]

score: function [
	return: [integer!]
] [
	if ((length? game/frames) < 10) [
		cause-error 'user 'message "Score cannot be taken until the end of the game"
    ]
	if ((length? game/frames/10) < 4) [
		cause-error 'user 'message "Score cannot be taken until the end of the game"
    ]

	probe game/frames
	total: 0
	frames: game/frames

	repeat i 9 [
		frame: frames/:i
		switch frame/1 [
			"open" [total: total + frame/2 + frame/3]
			"spare" [j: i + 1 total: total + 10 + frames/:j/2]
			"strike" [
				j: i + 1
				k: i + 2
				either frames/:j/1 = "strike" [
					total: total + 10 + frames/:j/2 + frames/:k/2
                ][
					total: total + 10 + frames/:j/2 + frames/:j/3
                ]
            ]
        ]
    ]

	total + frames/10/2 + frames/10/3 + frames/10/4
]

roll: function [
	pins [integer!]
] [
	case [
		pins > 10 [
			cause-error 'user 'message "Pin count exceeds pins on the lane"
        ]
		pins < 0 [
			cause-error 'user 'message "Negative roll is invalid"
        ]
		(length? game/frames) = 9 [
			append/only game/frames copy ["fill"]
			append/only game/frames/10 pins
        ]
		(length? game/frames) = 10 [
			if (length? game/frames/10) = 4 [
				cause-error 'user 'message "Cannot roll after game is over"
			]
			append/only game/frames/10 pins
			if ((length? game/frames/10) = 3) and (game/frames/10/2 + pins < 10) [
				append/only game/frames/10 0
            ]
			if (length? game/frames/10) = 4 [
				case [
					(game/frames/10/2 = 10) and (game/frames/10/3 = 10) []
					(game/frames/10/2 = 10) and (game/frames/10/3 < 10) [
						if (game/frames/10/3 + game/frames/10/4) > 10 [cause-error 'user 'message "Pin count exceeds pins on the lane"]
					]
					(game/frames/10/2 < 10) [
						if (game/frames/10/2 + game/frames/10/3) > 10 [cause-error 'user 'message "Pin count exceeds pins on the lane"]
                    ]
                ]
            ]
        ]
		(game/prev < 0) and (pins = 10) [
			comment "Strike"
			append/only game/frames copy ["strike" 10]
        ]
		(game/prev < 0) and (pins < 10) [
			comment "First roll"
			game/prev: pins
        ]
		(pins + game/prev) > 10 [
			cause-error 'user 'message "Pin count exceeds pins on the lane"
        ]
		(pins + game/prev) = 10 [
			comment "Spare"
			frame: copy ["spare"]
			append/only frame game/prev
			append/only frame pins
			append/only game/frames frame
			game/prev: -1
        ]
		(pins + game/prev) < 10 [
			comment "Open Frame"
			frame: copy ["open"]
			append/only frame game/prev
			append/only frame pins
			append/only game/frames frame
			game/prev: -1
        ]
		true [
			cause-error 'user 'message ["Invalid rolls" game/prev roll]
        ]
    ]
]

Tags:
construct:add
construct:and
construct:assignment
construct:boolean
construct:case
construct:character
construct:comment
construct:comparison
construct:copy
construct:field
construct:function
construct:if
construct:index
construct:integer
construct:invocation
construct:length
construct:list
construct:logical
construct:make-object
construct:method
construct:number
construct:object
construct:parameter
construct:quoted-symbol
construct:readme
construct:repeat
construct:return
construct:string
construct:switch
construct:variable-get
construct:variable-set
construct:visibility-modifiers
paradigm:declarative
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:looping

Exercise: bowling
Code
Red [
	description: {"Bowling" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

frames: copy []
rolls: copy []
latest: 0
frame: true
count: 0
upto: 10
extra: 0
errs: [
	"Score cannot be taken until the end of the game"
	"Negative roll is invalid"
	"Pin count exceeds pins on the lane"
	"Cannot roll after game is over"
]
err: func [e][cause-error 'user 'message errs/:e]
score: func [
	return: [integer!]
] [
	count: 1
	forall rolls [
		len: length? rolls
		case [
			rolls/1 = 10 [
				if len < 3 [err 1]
				append frames 10 + rolls/2 + rolls/3
				count: count + 1
				if len = 3 [break]
			]
			rolls/1 + rolls/2 = 10 [
				if len < 3 [err 1]
				append frames 10 + rolls/3
				count: count + 1
				either len = 3 [break][rolls: next rolls]
			]
			'else [
				if len < 2 [err 1]
				append frames rolls/1 + rolls/2
				count: count + 1
				either len = 2 [break][rolls: next rolls]
			]
        ]
    ]
	case [
		count < 10 [err 1]
		'else [sum frames]
	]
]
roll: func [
	pins [integer!]
] [
	case [
		pins < 0  [err 2]
		pins > 10 [err 3]
		all [not frame latest + pins > 10] [err 3]
		'else [
			case [
				extra > 0 [
					extra: extra - 1
					if all [extra = 0 latest < 10 pins + latest > 10] [err 3]
					latest: pins
				]
				pins = 10 [
					latest: 0
					frame: true
					count: count + 1
					if count = 10 [extra: 2]
				]
				frame [
					latest: pins
					frame: false
					if count = 10 [count: count + 1]
				]
				'else     [
					frame: true
					count: count + 1
					if all [count = 10 pins + latest = 10] [extra: 1]
					latest: 0
				]
			]

			if all [count > upto extra = 0] [err 4]
			append rolls pins
		]
	]
	rolls
]

Tags:
construct:add
construct:all
construct:append
construct:assignment
construct:boolean
construct:break
construct:case
construct:comment
construct:copy
construct:decrement
construct:dictionary
construct:equal
construct:func
construct:function
construct:if
construct:if-else
construct:index
construct:integer
construct:invocation
construct:length
construct:less-than
construct:logical-and
construct:logical-not
construct:logical-or
construct:parameter
construct:rebol
construct:reduce
construct:set-word
construct:string
construct:subtract
construct:word
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:boolean-logic
technique:looping

Exercise: pov
Code
Red [
	description: {"POV" exercise solution for exercism platform}
	author: "" ; you can write your name here, in quotes
]

path-from-root: function [
	tree
	target
] [
	case [
		tree/label = target [reduce [tree]]
		none? tree/children [none]
		'else [
			result: none
			foreach c tree/children [
				subpath: path-from-root c target
				if not none? subpath [
					insert subpath tree
					result: subpath
					break
				]
			]
			result
		]
	]
]

from-pov: function [
	tree
	from
] [
	path: path-from-root tree from
	if none? path [return none]

	while [1 < length? path] [
		if none? path/2/children [path/2/children: copy []]

		alter path/1/children path/2
		alter path/2/children path/1

		if empty? path/1/children [remove/key path/1 'children]

		path: next path
	]

	first path
]

path-to: function [
	from
	to
	tree
] [
	tree: from-pov tree from
	if none? tree [return none]

	path: path-from-root tree to
	if none? path [return none]

	collect [
		foreach node path-from-root tree to [
			keep node/label
		]
	]
]

Tags:
construct:assignment
construct:break
construct:case
construct:comment
construct:copy
construct:function
construct:if
construct:index
construct:invocation
construct:keep
construct:length
construct:nested-function
construct:none
construct:number
construct:parameter
construct:readme
construct:red-block
construct:return
construct:tag
construct:variable
construct:while-loop
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:looping
technique:recursion

Done!

Thank you! 💙

This is an automated comment
Hello :wave: Next week we're going to start using the tagging work people are doing on these. If you've already completed the work, thank you! If you've not, but intend to this week, that's great! If you're not going to get round to doing it, and you've not yet posted a comment letting us know, could you please do so, so that we can find other people to do it. Thanks!

Thanks for the help! We've updated the tags.


Change the error value

Codecov Report

Merging #5 (e3bd266) into master (9e97248) will increase coverage by 0.98%.
The diff coverage is 60.00%.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
+ Coverage   71.23%   72.22%   +0.98%
==========================================
  Files           1        1
  Lines          73       72       -1
==========================================
  Hits           52       52
+ Misses         21       20       -1

Flag
Coverage Δ

unittests
72.22% <60.00%> (+0.98%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/fstat.c
72.22% <60.00%> (+0.98%)
:arrow_up:

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 9e97248...e3bd266. Read the comment docs.


Add a LoginWithToken method which is a cheaper way to login. Closes #89.

Eventually we should consider allowing Login/LoginWithToken to mutate
s.Token, it would probably simplify the API a bit.

Yeah that's not a bad idea really.  I still want to give the lib user access to the token so they can store it but they can just pull it from Session.Token :)  Do we need two Login funcs it would it be easier just to have one that will handle all situations?

Ok, I did the proposed behavior and updated New to use an optional Token.


Ajax Error while adding new conference

I am getting this error ^ right after logging in
Currently using Heroku to host the Integration Server. It forces HTTPS, is that the issue here and how would I fix it?
cc: @vpauk

This is the error I get when I try to visit the dashboard of one of the conferences.

me too

@darshil hi, it looks like problem is with data in database not with https. Had you any problems with database migration or seeding data?

Did you sort this out? Earlier this was functioning properly. I have graded my server to Ubuntu 18.04 and php 7.2 this problem has occured and I cannot solve it. Could anybody help?

@aht61Hi, this is issue with count method in php7.2, currently we are not supporting php7.2

To which php version should I downgrade then? with many thanks.

@aht61 on 5.6 it works correctly, I think that you can try also on 7.1 but we haven't tested how it works on 7.1


Deployment to now

Hey, thanks for this future tech.
I am getting this under deployment to zeit/now:
> /home/nowuser/src/bin/server.js:40
>     const clientStats = stats.toJson().children[0]
>                              ^
> TypeError: Cannot read property 'toJson' of undefined

Hi @surepe, thanks for checking out Reactivity!
It would help if you could give the steps you followed to get this error. Did you use anow.json for configuration, and specify environment variables?

I've revert my changes to project and this is the result of deploying an untouched reactivity. Seems like we can't do another webpack manipulations on "start".
> ▲ npm start
> ><EMAIL_ADDRESS>start /home/nowuser/src
> > node bin/server.js
> Error: EACCES: permission denied, open 'buildServer/main.js'
>     at Object.fs.openSync (fs.js:652:18)
>     at Object.fs.writeFileSync (fs.js:1299:33)

Anyway, it's gotta be cool if you have some time and provide working deployment setup to zeit/now.
Thanks!

Hey @surepe we have resolved your issue, please pull the latest changes and when deploying with now you need to provide the .env file using -E FILE, --dotenv=FILE like so now --dotenv=.env.

Great work @dawidvdh. --dotenv looks for .env by default so now --dotenv should do the trick too if you've copied .sample.env to .env


two rows in the Animal models tab pointing to one mouse in JAX

We have 2 entries for mouse models here:
http://targetvalidation.org/evidence/ENSG00000136244/EFO_0000685?view=sec:animal_models
targetvalidation.org
But they point to the same ID in the MGI/Jax db.
Is that correct?
In the platform we have the mixed 129SV/C57 Black 6 for the first row, then mixed 129SV/MF1 for the second, both linked to:
http://www.informatics.jax.org/allele/MGI:2158764

Not sure, but it is not an api problem
Il 1 giu 2017, 10:21 +0100, deniseOme<EMAIL_ADDRESS>ha scritto:

We have 2 entries for mouse models here:
http://targetvalidation.org/evidence/ENSG00000136244/EFO_0000685?view=sec:animal_models
targetvalidation.org
But they point to the same ID in the MGI/Jax db.
Is that correct?
In the platform we have the mixed 129SV/C57 Black 6 for the first row, then mixed 129SV/MF1 for the second, both linked to:
http://www.informatics.jax.org/allele/MGI:2158764
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


isn't this the way to write in html??

Each of your two radio button elements should be nested in its own label element...
isn't this the way to write??
<form action="/submit-cat-photo">   <input type="text" placeholder="cat photo URL" required>   <label><input type="radio" name="indoor-outdoor"> Indoor <input type="radio" name="indoor-outdoor"> Outdoor </label>

@bappyasif
Please use the Help chat room for getting challenge related help.
Happy Coding.


[fix lint warnings: Uniques pallet] fix clippy::missing_docs_in_private_items warnings

This PR fixes 6 out of the 8 lint warnings emitted by the missing_docs_in_private_items lint in the Uniques pallet by adding docs to the relevant types. The remaining 2 warnings have to do with the outer macro pattern I believe and may need to be addressed as a separate task (cc @sam0x17):
warning: missing documentation for a module
   --> frame/uniques/src/lib.rs:441:12
    |
441 |     #[pallet::call]
    |               ^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_docs_in_private_items
    = note: requested on the command line with `-W clippy::missing-docs-in-private-items`

warning: missing documentation for an associated function
   --> frame/uniques/src/lib.rs:280:29
    |
280 |     #[pallet::generate_deposit(pub(super) fn deposit_event)]
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_docs_in_private_items

This is part of an ongoing effort from the https://github.com/orgs/paritytech/teams/devrel team to improve developer experience.

Why do we need docs on private things?

Adding docs to public items should be our priority, but we should also try and document the private items because we frequently tell folks to "read the code" when it comes to learning Substrate.
If we were only directing people to the rustdocs then completely agree that we would only need to document those elements which make up the public interface—although having the private items documented certainly wouldn't hurt us—but as we're explicitly directing people to read the code too, then we really should try to ensure that all of the code is documented.

bot merge

Why do we need docs on private things?

tooltips in RA when people are poking around. I actually document all my private items across the board in my crates, for my own sanity.

bot merge

@sam0x17  - can you ask the bot nicely to merge ? I don't have authorization 🙈

@sam0x17 - can you ask the bot nicely to merge ? I don't have authorization see_no_evil

looks like cumulus and zombienet are still failing

bot merge

bot rebase


Platform and browser switched in stats page.

As title, platform and browser are switched in stats page ("Platform" column shows browsers and "Browser" column shows platforms).
In both "Recently viewed pages" widget in the dashboard and "Page Details" page.
Please see screenshot:

hi @yurigiu thanks for reporting the  errors.
They should all be fixed in 2.1.0
Let me know of you experience using the plugin, I build it for myself, so i'm not very sure of what other people find useful or not

I like it, I am using it for some days now.
If you are looking for some suggestions, I would say the following:

To make it really useful, it needs some analysis of the referrals (eg. from which original sites the users are coming from). With this, the plugin could even replace a full-blown analytics service, for small sites.
A way to reset the statistics, maybe a button in the configuration page?

@yurigiu thanks
Latest version is aready collecting referal data but not diplaying it yet


[FeatureBranch] Fixes x86/ARM/ARM64 builds for the CI-Pipeline

Fixes x86/ARM/ARM64 builds for the CI-Pipeline
Description of the changes:

Specifies AppBunldPlatforms for different platform settings.

How changes were validated:

Local tests passed
CI-Pipeline passed

Hi @hanzhang54, Hi @guomingrui, Could you help review this PR? thanks.


attachments_ui: Removed exporting of bytes_to_size function

https://github.com/zulip/zulip/issues/8667

probably better would be to stop exporting the function (since we don't use it in other modules) or do nothing.

Since the function is not used anywhere else, I removed the exporting.

@cg-cnu you need to fix the linter errors.


Multiple Heartbeat Fibers

It would appear it is possible for multiple heartbeat fibers to be spawned.
Looks like we should spawn a single fiber in the ctor and synchronise whether it sends heartbeats using a instance var.

Perhaps we could also take this opportunity to handle heartbeat acks. Despite uncovering this bug, it's getting just a little bit lame seeing them crop up in my terminal, and the warning confuses people to say the least. :smile:


Carousel is not working in android - form last commit

Hi @machadogj, Recently i post a issue regarding initialPage props not working. After that you did a commit but now, Carousel is not working on Android, It simply scrolls like Horizontal scroll view. I even checked with v0.27 in android. still, im getting the same result.

Thanks in Advance!

Hi @karthickvkumar, I tried with the latest and the following code seems to be working as expected:
          <Text style={styles.welcome}>
            Welcome to React Native!
          </Text>
          <Text style={styles.instructions}>
            See carousel below.
          </Text>
          <Carousel initialPage={1} pageStyle={ {backgroundColor: 'grey', padding: 20, height: 120} }>
              <Text>Hello</Text>
              <Text>World!</Text>
              <Text>From carousel</Text>
          </Carousel>

I'll keep doing some more testing, but let me know if that works for you.

@machadogj after wrapping ... inside  with flex:1, its working fine! but its not setting the initialPage, Can you please put your working example for reference!

@karthickvkumar what I pasted in my previous comment seems to be working on android. Which version of react-native-carousel-control do you have in your node_modules folder?

@karthickvkumar turns out you were right on the initialPage bug. Don't know why it worked for me, but it should be fixed in version 1.0.3 (https://github.com/machadogj/react-native-carousel-control/commit/fc864259cfe81a1409ba985c877c4b206abde822).
Thanks for reporting it!


Returning a Zing React Component comes up blank

I'm using the ZingChart React Component in a Popup.
When I render the component like so directly in the popup it works.
<popup>
     <LineChart
            id="chart4"
            height="300"
            width="100%"
            series={this.state.values}
            legend="true"
            theme="light"
            title={this.state.title}  />
</popup>

But when I use another component to render the chart it's coming up blank.
Example that doesn't work.
const Chart = props => {

    return <LineChart
            id="chart4"
            height="300"
            width="100%"
            series={props.values}
            legend="true"
            theme="light"
            title={props.title}  />
}

<popup>
    <Chart  title={this.state.title} value={this.state.values} />
</popup>

Any ideas?

Sorry. It was a user error on my part. Everything works great!


Fix the default callback to save the infrared brightness value

Signed-off-by: Avi Miller<EMAIL_ADDRESS>

Does this require a release?

It does, but it's not urgent. I have a bunch of things to fix for the corresponding Home Assistant PR too.

Sorry, my bad, I misunderstood you needed more changes here.... Was waiting for those

Ah, sorry for the confusion. What I meant was that I had other PRs for Home Assistant in-flight before the one that required this change would be ready.


Get hosting on Maven Central setup

I can have a stab at this one.

I don't have time to do this, plus I think it might be complicated given I'm not the repo's owner. Pushing back


Error description is not clear with new experimental TF_lite_converter

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux, Colab
TensorFlow installed from (source or binary): binary
TensorFlow version (or github SHA if from source): tf-nightly

Command used to run the converter or code if you’re using the Python API
import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# without the following two lines, it will throw
# ValueError: Cannot set tensor: Got value of type NOTYPE but expected type FLOAT32 for input 0, name: flatten_input
#x_train = tf.dtypes.cast(x_train,tf.float32)
#x_test = tf.dtypes.cast(x_test,tf.float32)

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=1)
model.evaluate(x_test, y_test)

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.experimental_new_converter = True
#converter.experimental_enable_mlir_converter = True
tflite_model = converter.convert()

import numpy as np
expected = model.predict(x_test[0:1])

# Run the model with TensorFlow Lite
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
interpreter.set_tensor(input_details[0]["index"], x_test[0:1, :, :])
interpreter.invoke()
result = interpreter.get_tensor(output_details[0]["index"])

# Assert if the result of TFLite model is consistent with the TF model.
np.testing.assert_almost_equal(expected, result)
print("Done. The result of TensorFlow matches the result of TensorFLow Lite.")

The output from the converter invocation
ValueError: Cannot set tensor: Got value of type NOTYPE but expected type FLOAT32 for input 0, name: flatten_input
Failure details
Conversion is successful if the data type is float32. If the data type of input data is float64, then it will throw ValueError: Cannot set tensor: Got value of type NOTYPE but expected type FLOAT32 for input 0, name: flatten_input  which is not clear.  Most of the keras models In Tensorflow website under tutorials are with float64 datatype. So, if the user try to convert them into tf_lite model, they will end up in this ValueError. I think we need to update the Error description. Instead of showing NOTYPE, may it is better to use float64 or other data types that are not compatible.
Here is the link to colab gist

Over to @miaout17 and @gargn to investigate.


[Teach]:

Feature Description
Can you design an in-app language switching implementation with Jetpack Compose?
Extra Details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new feature request
[X] I have written a informative title
[X] I filled out all the information requested in this form
[X] I have updated to the latest app version and the feature is still missing

Hi,
please use the issues only for things related to the project (like enhancements, bugs, etc.).


Error when LOADING a parquet file EXTRACTED to/from BigQuery if Schema contains type record, mode repeated

Environment details

OS: Alpine Linux
PHP version: 8.1.19
Package name and version: google/cloud-bigquery v1.24.0

Steps to reproduce
Create a table with the following Configuration:
  {
    "retries": 3,
    "schema": {
      "fields": [
        {
          "mode": "REQUIRED",
          "name": "id",
          "type": "INT64"
        },
        {
          "mode": "REQUIRED",
          "name": "started_at",
          "type": "DATE"
        },
        {
          "name": "custom_dimensions",
          "type": "RECORD",
          "mode": "REPEATED",
          "fields": [
            {
              "name": "name",
              "type": "STRING",
              "mode": "NULLABLE"
            },
            {
              "name": "value",
              "type": "STRING",
              "mode": "NULLABLE"
            }
          ]
        }
      ]
    },
    "timePartitioning": {
      "type": "DAY",
      "field": "started_at"
    }
  }

Store data in it, like:
  {
    "id": 1,
    "started_at": "2023-05-07",
    "custom_dimensions": [
      {
        "name": "name1",
        "value": "value1"
      },
      {
        "name": "name2",
        "value": "value2"
      }
    ]
  }

Create a parquet archive in CloudStorage via Google\Cloud\BigQuery\Job with the following data
{
  "kind": "bigquery#job",
  "etag": "",
  "id": "",
  "selfLink": "",
  "user_email": "",
  "configuration": {
    "extract": {
      "sourceTable": {
        "projectId": "<projectId>",
        "datasetId": "<datasetId>",
        "tableId": "repeated_field_test_model$20230507"
      },
      "destinationUri": "gs://<bucketId>/<namespace>/part-*.parquet",
      "destinationUris": [
        "gs://<bucketId>/<namespace>/part-*.parquet"
      ],
      "destinationFormat": "PARQUET",
      "compression": "ZSTD"
    },
    "jobType": "EXTRACT"
  },
  "jobReference": {
    "projectId": "<projectId>",
    "jobId": "",
    "location": ""
  },
  "statistics": {
    "creationTime": "",
    "startTime": "",
    "reservation_id": ""
  },
  "status": {
    "state": "RUNNING"
  },
  "principal_subject": ""
}

Delete the complete contents of the tables (all partitions!), e.g.
DELETE FROM <projectId>.<datasetId>.repeated_field_test_model
Load the created parquet file into bigQuery with the following arguments
  {
    "projectId": "<projectId>",
    "jobReference": {
      "projectId": "<projectId>",
      "jobId": "<jobId>"
    },
    "configuration": {
      "load": {
        "writeDisposition": "WRITE_EMPTY",
        "ignoreUnknownValues": false,
        "sourceFormat": "PARQUET",
        "encoding": "UTF-8",
        "fieldDelimiter": null,
        "compression": "NONE",
        "skipLeadingRows": null,
        "allowJaggedRows": null,
        "allowQuotedNewlines": null,
        "quote": null,
        "timePartitioning": {
          "type": "DAY",
          "field": "started_at"
        },
        "sourceUris": [
          "gs://<bucketId>/<namespace>/part-*.parquet"
        ],
        "destinationTable": {
          "tableId": "repeated_field_test_model",
          "datasetId": "<datasetId>",
          "projectId": "<projectId>"
        }
      }
    }
  }

You receive the following error when the Job was processed and has status.state = "DONE"
  {
    "reason": "invalid",
    "message": "Provided Schema does not match Table <projectId>:<datasetId>.repeated_field_test_model. Cannot add fields (field: custom_dimensions.list)"
  }

Observations and current Conclusions

The behavior can't be reproduced when using bq to load the Parquet file into BigQuery
The behavior can't be reproduced as soon as 1 partition with data exists in the destination table

There are multiple possible culprits:

a configuration mistake, but only found this here: https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-parquet#list_logical_type , which sounds unrelated
The generated Parquet File is wrong -> e.g. doesn't contain the correct info to restore it
The Loading of the Parquet File is faulty -> e.g. Loading does not correctly infer the Schema info

Please, let me know, if I can provide more Info to trace down the issue.
Thanks, Simon

Could you please provide me the PHP code snippet you used to reproduce this? That way it will be easy for me to sync with this issue.

Hey @ajupazhamayil
Thank you very much for reaching out!
Unfortunately I can't provide all sources that would be necessary to reproduce the complete process. In the meantime I decided to go with gz compressed JSONL instead  of parquet. There everything is fine.
In https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-parquet I found the following:

Nested groups are converted into STRUCT types. Other combinations of Parquet types and converted types are not supported.

This indicates for me, that it is not possible to use Records from Parquet files properly.


Rerun viewer becomes slow when there are several hundreds of entities

We currently don't have a good example of this. The best we got is
pixi run py-build-examples && pr -e examples open_photogrammetry_format --no-frames
and

https://github.com/rerun-io/rerun/pull/5449

Related issues

https://github.com/rerun-io/rerun/issues/3110

Here's a very simple example that makes the viewer totally unuable:
import rerun as rr

from rerun.datatypes import RotationAxisAngle

rr.init("rerun_example_many_entities", spawn=True)

def one_strip(number_points: int):
    return rr.LineStrips3D(
        [[0.3 if i % 2 == 0 else -0.3, i, 0] for i in range(number_points)],
    )

def rotate(theta: float):
    return rr.Transform3D(
        rotation_axis_angle=RotationAxisAngle(axis=[0, 0, 1], degrees=theta),
        axis_length=0,
    )

def draw_lines(lines_count: int, pts_per_line: int):
    theta_delta = 360 / lines_count
    for i in range(lines_count):
        rr.log(f"line_{i}", rotate(theta_delta * i))
        rr.log(f"line_{i}/strip", one_strip(pts_per_line))

draw_lines(5000, 10)