I think the Matrix problem would be better without the 'string' tests.

As a beginner-intermediate Haskeller making my way through the exercises, this was the first time I had to submit an incomplete result and look up the answer. When I looked at it I didn't understand it, and I'm still not sure I understand it. [Basically, I think the type inference is coming from the other side of the shouldBe in the tests, is that right?] I never would have figured this out for myself.
I also don't feel it makes much sense in the context of the problem. The direct text of the problem is "Given a string representing a matrix of numbers, return the rows and columns of that matrix." Expecting that to work with a matrix of strings is not reasonable, particularly given that it's a much more difficult parsing problem than anything seen so far.

Even though the https://github.com/exercism/x-common/blob/master/exercises/matrix/canonical-data.json does not exist yet, what @derifatives says is true - the https://github.com/exercism/x-common/blob/master/exercises/matrix/description.md only says matrices of numbers, so the https://github.com/exercism/xhaskell/blob/master/exercises/matrix/test/Tests.hs#L76-L84 seem out-of-place.
If the maintainers of this track decide that the parsing questions are useful to have, they can be moved to a track-specific exercise, perhaps?

And my personal opinion:
Will have to wait until I've done this exercise.

@derifatives wrote:

Basically, I think the type inference is coming from the other side of the shouldBe in the tests, is that right?

I don't understand what you mean by "from the other side", but here is how I understand it:
    let intMatrix = fromString :: String -> Matrix Int

intMatrix is defined as a specialized version of the used-defined fromString, having type String -> Matrix Int.
    it "extract first row" $ do
      row 0 (intMatrix "1 2\n10 20") `shouldBe` vector [1, 2]

Knowing the type of intMatrix and row, the compiler can directly deduce that the expression on the left side of shouldBe is of type Vector Int, which is the same type as the right side.

I also don't feel it makes much sense in the context of the problem.

Yeah! It feels weird there!

It seems that fromString is there since the original commit that added the exercise.
I agree that there are reasons to remove it:

It isn't needed for the exercise to make sense.
It doesn't seem to add anything interesting to the exercise.
Exercises should probably be focused in a few concepts.
There seems to be no sensible implementation that isn't a partial function.

The only problem is that it isn't possible to remove fromString without rewriting the entire test suite, which may be a good idea...

Did the exercise, doing the string cases took more time than the entire rest of the problem, I think. Then again, I used the lowest-effort solution possible for the rest of the problem. reads skills not strong enough, apparently. It was an OK thing to think about, but good for its own exercise.


Function declarations are mistakenly allowed in non-{function,program} contexts

Filed by @michaelficarra previously as issue 422.
What steps will reproduce the problem?
try {} catch(e) { function a() }
if(b) { function c(){} }
if(d) function e(){}

What is the expected output?
Syntax Error
What do you see instead?
A parse with FunctionDeclarations throughout.
What version of the product are you using? On what operating system? Which browser?
Online parser demo.

This is one of the intentional difference between the spec and our implementation. We should close this. cc @michaelficarra

By our, you mean the Shfit parser. This is esprima. Also, duplicate of #1053?

No, I meant esprima. It is also a JavaScript parser instead of a ECMAScript
parser. It supports let/const and XML style comment in ES5 branch.
On Mon, Feb 16, 2015 at 10:58 Michael Ficarra<EMAIL_ADDRESS>wrote:

By our, you mean the Shfit parser. This is esprima. Also, duplicate of
#1053 https://github.com/jquery/esprima/issues/1053?
—
Reply to this email directly or view it on GitHub
https://github.com/jquery/esprima/issues/1051#issuecomment-74556258.

Documented as intentional compatibility (#1436).


Tests to demonstrate recursion error with double MonitorField and defer()/only() usage

This PR add tests to explain the issue #241.

Tests here are enough to verify that queries don't break, but they don't check whether MonitorField actually works in this scenario, if the deferred field is later updated. Looks to me like this fix doesn't handle that case?

@carljm do you mean something like that:
from freezegun import freeze_time

def new_test(self):
    obj = DoubleMonitored.objects.defer('name').get(name='Charlie')

    with freeze_time("2016-01-14"):
        obj.name = 'Charlie2'
        obj.save()
    self.assertEqual(obj.name_changed, datetime(2016, 1, 14))

Right, that looks good. Does that test pass with the current fix?

Yup! I willl update the PR!

@carljm updated!
Any reason to keep all the tests in only one file? And to include them in the python package install?

I see, I guess it still works because deferred field loading uses refresh_from_db, which loads a new instance from the db, triggering post_init signal.
Why is this issue only triggered by having two MonitorFields on the same model? Can you confirm that is actually necessary to repro? The fix doesn't seem specific to multiple MonitorFields.

I'm not yet crystal clear why it happens with two MonitorField, I need to investigate further.
I have already tested with only one MonitorField, and the recursion didn't happen (even without this patch).

I have the feeling that's related to the post_init signal registered twice if we have 2 MonitorField in the same model.

Ok, that makes sense. I think what happens without this fix is that the two MonitorFields bounce back and forth, because checking the one field triggers it loading from db, which sends post_init on an instance missing the second monitored field, which triggers loading the second field, which sends post_init on another new instance that's missing the first field, and they just go back and forth forever.
It seems to me that there's some strange unintended behavior around the new refresh_from_db and the post_init signal -- I'm not sure post_init should really be sent on every refresh_from_db. So I think there may be a bug in Django lurking here. But since 1.10 is already released, I'm ok with this workaround for now, even if we get the bug fixed for 1.11.


Insert markdown on enter

Closes #9

@brianlovin mind testing this patch?

Works like a charm! Nice 👌


Feature 1698 - disable Expected Entities field for non-wait actions

Request mentioned hiding, but we collectively agree disabling better than hiding

:tada: This PR is included in version 0.329.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Evaluate g:phpfmt_autosave on save

This makes it possible to override the autosave behavior per directory,
for example with the localvimrc plugin.

@nederdirk Thanks for submitting the PR. Looks good. I will merge it.


Extend sleep api to c3 hal

Work in progress
Add light/deep sleep functionality to esp32c3 (with stretch goals beginning with s3, and going from there).
Must

[ ] The code compiles without errors or warnings.
[ ] All examples work.
[ ] cargo fmt was run.
[ ] Your changes were added to the CHANGELOG.md in the proper section.
[ ] You updated existing examples or added examples (if applicable).
[ ] Added examples are checked in CI

Nice to have

[ ] You add a description of your work to this PR.
[ ] You added proper docs for your newly added features and code.

Current state

[!NOTE]
if anyone on the team can help me with any of these points, that would help me take the next steps efficiently.

I have an appreciation of what deep/light sleep is, and a basic view into how it's set up at the hardware level.
I'm uncertain about how to make sure that deep/light sleep is set up correctly. I could blindly copy-past with minor edits here and there, but I won't know if I'm doing it right, or how to test it.
esp_sleep_start calls call_rtc_sleep_start (which has 3 config branches for signature definition) which appears to just be an alias for a platform-specific implementation: the c3 impl for rtc_sleep_start
peppered throughout are config-defined (#if ...) code. I'll need some guidance on this one.
i need to make esp32c3_sleep.rs in the image of the other esp32[...]_sleep.rs files

Stream-of-Conciousness

[!NOTE]
This part is just for me to take notes. Pure, unrefined, organically* cultivated mind-dumps.

looking through the code of where deep-sleep is already implemented, I see that the peripheral access crates for the different chips have rtc_ctrl.rs::RegisterBlock which organises relevant registers. the s2, version 0.15.0, for example has the reset_state, wakeup_state and state0 set to 0x3c, 0x40 and STATE0 respectively.
access to this struct is via RTC_CNTL::ptr() which provides a const-defined number that is (assumedly) set according to the chips specification (in this case, it happens to be 0x3f40_8000)
This is relevant, as the esp32 implementation for sleep modifies these registers
....
looking at implemented esp32 sleep, we see the RtcSleepConfig struct being used, which is a u32 bitfield configuring the natuer of the sleep.
We also have a wake-source list, each of which we have to apply() with... This apply writes to the rtc_ctrl.sleep_timer0/1, setting the values based on clock-tick calculations, then enabling the sleep-timer bit.
WakeSource is a trait, implemented for Ext1WakeupSource, Ext0WakeupSource and TimerWakeupSource See SleepSource enum regarding ext0/1. Timer is just a duration.
...starting to put together a picture: entering into the sleep call stack, you can provide interupt sources (timer, external, etc) and a Delay mut-ref.
within the stack, you first create a config, and if it's an external interupt source, you disable the peripherals-power-down, and update the WakeTriggers bitfield so that it is triggered by timer/ext0/ext1 as appropriate
then set the pin(s) rtc_set_config(true, true, 0) for the ext sleeps. this is defined  by the rtc_pins declarative macro, which essentially just mutates the registers according to the hardware specification inside the RTC_CTRLs assosciated RegisterBlock, then coming back from that apply, the sleep function uses that register block and:

writes a 1-bit to to procpu_stat_vector_sel
writes to the wake-enable bitmap based on the provided wake-triggers
sets state0 to enable sleep by setting the right bits.

...next step in peeling apart the things I need to understand: find comonalityies/differences between the specs of OG esp32 and the c3, and start a naive re-implementation based on the OG32 and others that are around.
...reading the experiment for deep-sleep in c3 that bjoern put together, it appears there isn't much of a distinction between OG esp32 and esp32c3 for deep-sleep.
...reading the experiment code, we can see that deep sleep writes to the RTC_CTRL_DIG_PWC_REG. The question remains, what do I need to grok about the tech-spec manual in order to impl a deep/light sleep for any given chip? this is probably where the answer is!
...how the C impl models the code-flow:

start with esp_[deep|light]_sleep_start();
....

I noticed that there is portENTER_CRITICAL which is related to RTOS stuff. Probably well outside scope. Might want to go down that rabbit hole at some point :P
a lot of #if CONFIG_..... Gonna have to revise how this works... turns out it's in sdkconfig files, e.g. sdkconfig.defaults
I think I now need to focus on having a look at the inlined sleep setup in the examples, and differentiate between the esp-wide, and platform specific code.
...
@bugadani comments:

I would suggest starting by figuring out the default configuration (base_settings or what's it called in esp-hal) that will have to be applied at boot. That will be a good excercise in reading esp-idf source and translating that into rust, and figuring out where some of the pieces can be.

I also think rtc_pins is not implemented for the C series so you'll need to provide that, too. This is also a good building block before anything else.

your best bet in adding support for an MCU here is to read esp-idf code. Much of the sleep code is just a mess sprinkled around multiple peripherals and register blocks (at least in the Xtensa MCUs) and it's a big headache trying to figure it out by ourselves
if you have basic_settings and apply done, the individual wakeup sources aren't very difficult
since you're new to hardware-close development, you might want to familiarize yourself with the particular line's technical reference manual. I'm not saying you should read it all at once, just know what and where you can look up in it, in case you want to get disappointed that what you want isn't documented in it :(

c code base
documentation for sleep modes
technical reference manual

Hi, I'm interested in this feature. Do you know if the @bjoernQ experimental code is already working?

@jaedson-barbosa I'm not 100% sure, as I haven't tried it, but he tells me that it's missing some calculations, and it's only for deep sleep (i think?)
Up to this point, I've only been getting to grips with the underlying infrastructure. If you want to werk on it together with me, jump into the element chat room and DM me.

Hi, I'm interested in this feature. Do you know if the @bjoernQ experimental code is already working?

It should work for both, deep-sleep and light-sleep, so far.

Hi @bjoernQ , sorry for the question, but how can this code be used to enable light sleep mode? Looking at it, I have the impression that it is used to enter deep sleep mode.

Hi @bjoernQ , sorry for the question, but how can this code be used to enable light sleep mode? Looking at it, I have the impression that it is used to enter deep sleep mode.

by commenting out rtc.dig_pwc.modify(|_, w| w.dg_wrap_pd_en().set_bit()); // enable power down digital core in sleep the chip will go into light sleep

And let's assume I also need ESP to wake up with a pulse on GPIO 9, would that be possible?

It's possible but much more involved than just sleeping for a period of time - it's what @Ben-PH is working on

I originally intended this fork to be just for sleeper work, but that's grown. I'm also looking at some other work at the moment, but this will be reopened shortly, either this PR, or a fresh PR.


[21366] Update apt dependencies in ubuntu github ci

Description

This PR makes Uubntu CI to update the apt sources list before actually installing the required ones. This solves this error

@Mergifyio backport 2.14.x 2.10.x 2.6.x

Contributor Checklist

[X] Commit messages follow the project guidelines.
N/A Code snippets related to the added documentation have been provided.
N/A Documentation tests pass locally.
[X] Applicable backports have been included in the description.

Reviewer Checklist

[x] The PR has a milestone assigned.
[x] The title and description correctly express the PR's purpose.
[x] Check contributor checklist is correct.
[ ] CI passes without warnings or errors.

@Mergifyio backport 2.14.x 2.10.x 2.6.x


no demo page on github

y u no demo page?
https://pages.github.com/

Yep you're right, I should do that so people can test the plugin without downloading it.

[one eternity later] Yeah I'm sorry i didn't got time to work on that, but if anyone have an idea to make something (necessarily elaborate) your welcome to suggest something in a PR. That would be very welcome! ❤


Error: SyntaxError: Unexpected token <

I'm submitting a ...  (check one with "x")
[ x] bug report => check the FAQ and search github for a similar issue or PR before submitting
[ ] support request => check the FAQ and search github for a similar issue before submitting
[ ] feature request

Current behavior
Error: SyntaxError: Unexpected token <
I have this error after DEPLOY, local works fine.
I had problem with ngx-translate. It couldn't find @ngx-translate so finally i put:
'@ngx-translate/core': <EMAIL_ADDRESS>into map in my systemjs.config.js
if i put '@ngx-translate/core': 'node_modules/@ngx-translate/core/bundles'  it won't work

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

i have a similar problem.

I would suggest you check the Network tab in the Chrome DevTools to see if the translations file was loaded correctly. My guess is that instead of the desired .json file the server responds with an HTML file (probably your index.html).

Yes, that's almost always the reason why it fails. Because a SPA always starts from index.html, if the translation files can not be found it just returns the index.html file. So like @tsvetan-ganev suggests, take a look in your chrome devtools to the network tab and make sure the correct path is loaded.


Story: Extend Knowledge Agent Kit with Versioning Discussions

As a Knowledge Agent stakeholder, I want to have a proposal how to use the versioning properties of my graph and skill assets in order to contribute to stable computation and hence data chains in various use cases.
Acceptance Criteria
The Agents standard CX-0084 should give rules how to apply versioning to

data graps,
API graphs
skill assets.

The Agents Kit should be extended to demonstrate the usage of the versioning property for example in goal-oriented skill.
Estimation
7 SP
Epic Link
https://github.com/eclipse-tractusx/sig-release/issues/397

realised through https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/pull/872


Background task Runs multiple times per second even after setting up schedule and repeat

@philippeowagner  @jvamvas
I  have added this code to my models. I want the background task to run only once per minute. So i gave the value for schedule as 60 (seconds) and repeat = 60 (seconds).
from background_task import background
@background(schedule=60)
def update_queue_status():
    print(datetime.now().time())
    ................
    ...............

update_queue_status(repeat=60)

But when i run python manage.py process_tasks, it runs the background task multiple times per second-
(qms_env) (base) C:\Users\shisharma\Documents\futuredev\QMS>python manage.py process_tasks
11:51:06.860161
11:51:06.911026
11:51:06.945932
11:51:07.022755
11:51:07.055640
11:51:07.071596
11:51:07.145399
11:51:07.165345
11:51:07.261117
11:51:07.276049
11:51:07.367802
11:51:07.461586
11:51:07.535353
11:51:07.630100
11:51:07.715872
11:51:07.784686
11:51:07.816629
11:51:07.825579
11:51:07.918329
11:51:07.977172
11:51:08.027037
11:51:08.112807
11:51:08.224510
11:51:08.280358
11:51:08.345213
11:51:08.442924
11:51:08.548641
11:51:08.587536
11:51:08.614464
11:51:08.632415
11:51:08.705221
11:51:08.751128
11:51:08.855819
11:51:08.901694
11:51:08.937628
11:51:08.978518
11:51:09.064289
11:51:09.155046
11:51:09.225828
11:51:08.941590
11:51:09.108143
11:51:08.927654
11:51:09.013395
11:51:09.197934
11:51:59.796843
11:51:59.824775
11:51:59.930155
11:52:00.026355
11:52:00.041316
11:52:00.113123
11:52:00.155011

Is there something wrong with what i am doing.
Thank you
Shivani

@invi84 @philippeowagner @jvamvas  Any suggestions, please ?

+1 Would like to know the reason. I have a similar problem.

I have the same problem. I want to write sensor data to the database every 10 seconds or so. Currently it does it like 10 times or more per run.

What versions of Python and Django are used in this case?

For me its Python 3.7 with Django 2.2.7

Seeing this as well on Django 3.0.1, Python 3.8.0, and django-background-tasks 1.2.5.

I see this happening with my code too. Did you get a chance to see if there are multiple tasks with the same hash in background_task table? BTW I am using async IO code in my tasks(not sure if it has anything to do with this).

This is happening to me too on Django 3.0.2 and backgound_task 1.2.5

I tried removing old tasks from the database. Didn't help...

I am having the same issue. What is the solution?

Managed to solve it by doing
from background_task.models import Task
Task.objects.all().delete()

It seems that the problem appears after changing the repeat argument. The old tasks keep executing alongside the new ones.

As noted above, deleting all tasks works. This is because a new task is created each time the process_tasks command is run.
So if you've stopped/started/stopped/started process_tasks for a repeating task, you will end up with multiples of the same task.
I've further added to the above response to only delete the tasks created by the current app.
from background_task.models import Task
"""
Tasks, when stored in database, are prepended with the app name.
This will clear tasks for the current app only.
"""
Task.objects.filter(task_name__startswith=__name__).delete()

Alternatively, I moved on to a different solution. I expect non-repeating tasks to get queued up each time the script is run (This is current behavior), I do NOT want repeating tasks to create a new repeating task.
To address this, I've cloned background_task and added the following to background_task.tasks.DBTaskRunner.schedule. This will continue default behavior for non-repeating task and create a new task. However, when a repeating task is specified, the pre-existing task entry will be updated. -- You will have to delete any related tasks (in case of multiple Task entries) before transitioning to the below method.
I added the following snippet to background_task.tasks.DBTaskRunner.schedule right after new_task creation (task = Task.objects.new_task(...)
'''
Default background_task behavior is to queue a new task whether repeating or not.
Instead, if repeat is specified, reschedule existing task entry waiting to be run.
This prevents queue from getting bloated with duplicate repeating schedules.
'''
if not action and repeat:
    action = TaskSchedule.SCHEDULE
else:
    action = TaskSchedule.RESCHEDULE_EXISTING

Depending on how you are using background_task, you may want to consider further adding to the above modification to compare repeat_until against run_at to determine if there is no overlap and if indeed a "duplicate" Task in the queue is desired.

For me the solution was using one of django-background-task available constants:
"The following constants are provided: Task.NEVER (default), Task.HOURLY, Task.DAILY, Task.WEEKLY, Task.EVERY_2_WEEKS, Task.EVERY_4_WEEKS."
Using these constants for the 'repeat' parameter when calling the task, solved the issue for me.


Installing Plugin Causes Kodi to Crash on Fire TV

I'm submitting a ...

[x ] bug report
[ ] feature request
[ ] support request

General infomration
Kodi crashes on install of plugin
Prerequisites
Kodi 18, Amazon Fire TV

[x ] Are you running the latest version?

Description
I have tried various versions of the kodi 18 apk, all crash after installing the plugin. Kodi is then unusable until removed and reinstalled due to crashing.
I have tried instaling the plugin from various sources including the repository and downloading the video plugin from github.
Expected behavior: [What you expected to happen]
Watch netflix ;)
Actual behavior: [What actually happened]
App crashes.
Context (Environment)
Android Fire TV.
Installation
Alternatives all attempted with same result.

[x ] I installed the plugin via zip from the Releases page
[x ] I´m using the Netflix Repo
[ ] I´m using a different source (Please tell which)

Operating System

[ ] Linux (x86/x64)
[ ] OSX (x86/x64)
[ ] Windows (x86/x64)
[ ] Linux (ARM)
[x ] Android

Additional informatin on the environment
Amazon Fire TV 1
[Descripe your environment a bit more detailed, are you using LibreElec f.e.]

Not enough info. Please provide at least a debug log.


fix linux read permissions issue

Added permission check to fix permission denied errors on linux

As I mentioned in #9 I'll probably introduce some more checks for errors concerning also macOS and Windows, but I think this is a good start and finally we're able to run some CI integration test on Linux without requiring admin privileges that were giving me some troubles with GitHub Actions.
Thank you 💯

I hope to release a patched version of the library within the next week.

Update: listeners v0.2.1 has just been published so that you can use it in your project with this patch @jacek-kurlit

Thank you!!!
I'm going to use is right away


Fix static report url

Old output: INFO[0028] Static report created. Access it at this URL:  URL="file:/Users/emilymcmullan/Repos/kantra/output-test/static-report/index.html"
Fixed output: INFO[0026] Static report created. Access it at this URL:  URL="file:///Users/emilymcmullan/Repos/kantra/output-test/static-report/index.html"
Closes #261

Closing for https://github.com/konveyor/kantra/pull/269


Add AWS Lambda interface to map HTTP requests to Handler's methods

Problem
Core logic shall be invoked over network.
Proposed Solution

Map HTTP requests to procedure calls to invoke the Handler's methods
Use the AWS Lambda HTTP mapping to propagate the event content to the Handler
The lambda will be adopted to interface AWS Gateway
The secrets are fetched from the environment variables.

DoD

The module github.com/kislerdm/diagramastext/core/cmd/lambda is developed
The module relies on github.com/kislerdm/diagramastext/core
Test coverage coverage is at least 80%

Please rely on the interfaces described here. The branch is going to merged to master soon.


iOS: No able to co-existing with cordova-plugin-firebase-analytics

Expected Behaviour
Install both phonegap-plugin-push and cordova-plugin-firebase-analytics in the same project.
Also see https://github.com/phonegap/phonegap-plugin-push/issues/2796
Actual Behaviour

cordova plugin add phonegap-plugin-push --variable FCM_VERSION=17.4.0
Installing "phonegap-plugin-push" for ios
"framework" tag with type "podspec" is deprecated and will be removed. Please use the "podspec" tag.
Running command: pod install --verbose
Failed to install 'phonegap-plugin-push': Error: pod: Command failed with exit code 1
at ChildProcess.whenDone (/Users/xinfeng/Documents/learn/sample/node_modules/cordova-common/src/superspawn.js:135:23)
at ChildProcess.emit (events.js:209:13)
at maybeClose (internal/child_process.js:1021:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
pod: Command failed with exit code 1
[ERROR] An error occurred while running subprocess cordova.

    cordova plugin add phonegap-plugin-push --variable FCM_VERSION=17.4.0 exited with exit code 1.

    Re-running this command with the --verbose flag may provide more information.

$ pod install
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "FirebaseAnalytics":
In snapshot (Podfile.lock):
FirebaseAnalytics (= 6.4.2)
In Podfile:
Firebase/Analytics (~> 6.23.0) was resolved to 6.23.0, which depends on
Firebase/Core (= 6.23.0) was resolved to 6.23.0, which depends on
FirebaseAnalytics (= 6.4.2)
FirebaseMessaging (~> 2.0.0) was resolved to 2.0.8, which depends on
  FirebaseAnalytics (~> 4.0)

Reproduce Scenario (including but not limited to)
$ cordova plugin add cordova-plugin-firebase-analytics --variable FIREBASE_ANALYTICS_VERSION="16.+"
$ cordova plugin add phonegap-plugin-push --variable FCM_VERSION="17.4.0"
Cordova CLI version and cordova platform version
Cordova CLI       : 9.0.0<EMAIL_ADDRESS>cordova-android: ^8.0.0
cordova-ios: ^5.1.0
Plugin version
phonegap-plugin-push : 2.2.3  or 2.3.0
cordova-plugin-firebase-analytics: v0.14.0 above to the latest V4.3
Sample Push Data Payload
Sample Code that illustrates the problem
Logs taken while reproducing problem

I'm having the same problem when using both plugins, tried pop repo update and updating cocoapods version but none worked... Any workarounds?

Underlying firebase version is conflict. Check on plugin.xml,   is older than cordova-plugin-firebase-analytics using.
<EMAIL_ADDRESS>can co-exists with<EMAIL_ADDRESS>

@xinfengmich yes your solution works for iOS. however it does not for Android:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [class 'com.google.gms.googleservices.GoogleServicesPlugin']
   > All firebase libraries must be either above or below 14.0.0

Remove both, and try following
$ ionic cordova plugin add<EMAIL_ADDRESS>--variable FCM_VERSION="17.4.0"
$ ionic cordova plugin add<EMAIL_ADDRESS>--variable FIREBASE_VERSION="16.0.0"


Friends (with BloodPop®) by Justin Bieber unsupported.

Check if issue with swaglyrics or whether song lyrics unavailable on Genius.

stripper -> Justin-Bieber-and-BloodPopr-Friends
version -> 1.1.0

Yeah this is annoying since that registered symbol


proc: Refactor proc.(*EvalScope).variablesByTag

proc: Flag shadowed arguments as shadowed

Fixes #951

proc: cache entire frame in FrameToScope instead of variablesByTag

Caching the frame in variablesByTag is problematic:

1. accounting for variables that are (partially) stored in registers is
complicated (see issue #1106)
2. for some types (strings, interfaces...) simply creating the Variable
object reads memory, which therefore happens before we can do any
caching.

Instead cache the entire frame when the EvalScope object is created.
The cached range is between the SP value of the current frame and the
CFA of the preceeding frame, if available, or the CFA of the current
frame otherwise.

Fixes #1106

proc: change memCache to delay reading

Change memCache so that the preloaded memory is not read immediately
but only after the actual read to the preloaded range.

This allows us to request caching the entire stack frame every time we
create an eval scope and no unnecessary reads will be made even if the
user is just trying to evaluate a global variable.

The aim of this PR is to fix two bugs caused by variablesByTag: #1106 and #951

#1106 refers to the difficulty that variablesByTag has in dealing with variables that aren't stored completely on stack due to its caching strategy.

There is another, subtler, problem with caching and variablesByTag, the caching interval is calculated after variablesByTag has created Variable objects for all the variables it wants to load, since calling newVariable does sometimes read memory (for example for strings and interfaces) these reads happen before the caching.

My solution here is to move the caching to before variablesByTag runs, where the EvalScope object is created and to use the same stacktrace that is used to create the EvalScope to determine how much of the stack to preload. Since an EvalScope is also needed when the user evaluates a global variable, and in that case it would be wasteful to load anything from the stack, I changed the caching strategy of memCache to only load the cache the first time something from the cached range is actually read.

#951 refers to the fact that shadowed arguments are not flagged as such. To fix this problem I changed variablesByTag to load unconditionally all local variables (and renamed it to Locals). With this done arguments that are shadowed can be easily flagged as such. Filtering between arguments and variables is done at a later stage.


Very slow initial load of Album

After migration to 2.0.0 alpha from 1.0.7, the Album loads very very slowly.

if you want quickly
in this com.yanzhenjie.album.task.MediaReader file,delete this code

我删除了那段代码，没有提高多少，原来是4s左右

2.0 stable version has been released, optimized to open the album when the slow problem, in a few milliseconds time to open.
For the video and pictures must return to the preview.
As long as the phone in an App using the Album library and opened, Album for all the use of Album App speed up the video load speed, loaded in a few milliseconds, in the visual effects can not see slow.
Added Filter, you can filter the file size, file format, video duration, and can choose to filter out the file is displayed.

2.0正式版已经发布，优化了打开Album时速度慢的问题，基本是毫秒级别打开。
针对视频和图片必定返回预览图。
只要手机中的某个App使用了Album库并打开过，Album会为所有使用Album的App加快视频加载速度，毫秒级别加载，在视觉效果上看不出来慢。
增加了Filter，可过滤文件大小、文件格式、视频时长，并且可以选择被过滤掉的文件是否显示。


Jump in flow of diagram

Your diagram was helpful to see the flow between the browser, Kratos, and Hydra.
There is a jump in the flow as highlighted in the attachment. Was that intentional?

@thomastthai Yes that is correct


Switch Github Actions to use not macos

Rather, it should us something similar to the docker image.

Isn't this exactly what you suggested i NOT work on yesterday?   Getting the build to use docker images?

No, this is to use a version of linux that is similar to the docker image. Docker not involved.


Feat / switch subscription enhancements

Description
This PR adds (or fixes) two parts of the switch subscription mechanism.

Show confirmation modal when the subscription switch succeeds (or error when it has failed)
Show the pending offer information on the payments page (screenshot)

We can consider making this look nicer in the future.
Payments page (pending switch)

Success modal

Error modal

The e2e tests are failing due to a change in the series API, this isn't related to this PR

For later reference, the modal has been updated to show two variants. This is because the publisher can decide which switch strategy to use in the Cleeng dashboard. The options are; immediate switch (instantly updates the subscription) or deferred switch (switches after the next billing date).
Deferred switch

Immediate switch


scikit-learn breaks python-skbio autopkgtest: skbio.stats.distance._permdisp.permdisp

Hi,
there was another test suite error reported in Debian now with the latest upload of scikit-learn.  While you can find the full test log here this might be the relevant extract:
=================================== FAILURES
===================================
______________ [doctest] skbio.stats.distance._permdisp.permdisp
_______________
129     ...                       ['s1', 's2', 's3', 's4', 's5', 's6'])
130     >>> grouping = ['G1', 'G1', 'G1', 'G2', 'G2', 'G2']
131
132     Run PERMDISP using 99 permutations to caluculate the p-value:
133
134     >>> from skbio.stats.distance import permdisp
135     >>> import numpy as np
136     >>> #make output deterministic, should not be included during
normal use
137     >>> np.random.seed(0)
138     >>> permdisp(dm, grouping, permutations=99)
Differences (unified diff with -expected +actual):
    @@ -4,5 +4,5 @@
     number of groups                 2
     test statistic             1.03296
    -p-value                       0.35
    +p-value                       0.29
     number of permutations          99
     Name: PERMDISP results, dtype: object

Any comment would be helpful.
Kind regards, Andreas.

Hi @tillea --- our latest commit(s) on master are testing scikit-bio against scikit-learn 0.22.1 and we aren't seeing this error - can you provide more details about the build/test environment that produced this error? Are you still seeing this error?

Here's an odd thing: the relevant code executed manually in a Python shell returns the expected result (p = 0.35), and our build-time tests also pass without issue.
It's our as-installed tests ("autopkgtest", we use it to eg: retest packages anytime a dependency has changed) that fail.
At build time, tests are invoked with python3 -m pytest. The failing as-installed tests are invoked with python3 -m skbio.test, so presumably there is some kind of setup going on there that affects the tests, although I couldn't find one at first glance.
@thermokarst: can you confirm that your tests against 0.22.1 passed with the skbio.test test runner? Or do you have any other idea what could be going on?

Here is the link to the latest travis run on master:
https://travis-ci.org/github/biocore/scikit-bio/jobs/664032112
Here is the relevant link confirming scikit-learn 0.22.1:
https://travis-ci.org/github/biocore/scikit-bio/jobs/664032112#L508

Or do you have any other idea what could be going on?

Is it an architecture/precision type of issue? I'm sorry, I'm not much help here...


[BUG]: Non-enforced bug report template

Thanks for taking the time to fill out this bug report! In order the help our team processing your report, please fill in all the required information below.
Describe the bug
Some info
Instructions to reproduce
Detailed steps to reproduce the bug:

I did this
Than I did that

Elements package version
@pelcro/react-pelcro-js v3.16.0
Node.js version
v19.3.0 LTS
Operating system
Windows 11
Code snippets
Screenshots
Additional context

Testing issue forms

Testing issue forms

Testing issue forms


Open github commits after unlocking animation

#40
Open Hyprland github commits once animation is unlocked

It would be better to wait for the animation to end before switching to onClickUnlocked


Don't zero non-readable buffer regions when capacity is decreased

Motivation
#1802 fixed ByteBuf implementations to ensure that the whole buffer region is preserved when capacity is increased, not just the readable part. The behaviour is still different however when the capacity is decreased - data outside the currently-readable region is zeroed.
Modifications
Update ByteBuf#capacity(int) implementations to also copy the whole buffer region when the new capacity is less than the current capacity.
Result
Consistent behaviour of ByteBuf#capacity(int) regardless of whether the new capacity is greater than or less than the current capacity.

Added a commit to:

Also cover the case that the newCapacity <= readerIndex
Simplify and normalize the three implementations (less code)
Eliminate some redundant checks/index updates in PoolArena#reallocate(...)

@netty-bot test this please

Added a commit with further small simplification/de-duplication.

@netty-bot test this please

@njhill thanks a lot!


Develop

I noticed yesterday that requests doesn't work on Python 2.5 ( or Jython ). These commits make running the tests slightly easier to setup.
The core tests now pass on cPython 2.5. All tests (core, async, ext) pass on cPython 2.6. Working on changes to support Jython (currently one failing test in test_safe_mode).
If you want me to rework anything, let me know. But I really would like to re-enable Python 2.5 support.

I appreciate the contribution, but Python 2.5 support was dropped intentionally.
While it is fairly simple to support again (as this pull request shows), It's a bit more subtle than that. The main issue is that except RequestException, e is invalid syntax in Python 3. I'd also like to move to modern string formatting, which isn't possible when supporting 2.5.

I think the idea of having different requirements files is nice and worth merging. Btw, why is nose a requirement?
@seanjensengrey You say all tests including new async ones pass. I'm very surprised. See issue #383 Any comments on this?

@kennethreitz What if I added in using the 2to3 into the Makefile so we could generate a Python 3 compatible install? The vast majority of users are still on the Python 2.x line and will be for the foreseeable future.
Requests is great and I would like to see it replace all the other cruft out there by available everywhere. It would be nice if I could run it on cPython 2.5 and Jython, it limits my use of it on the systems I use as I can't migrate programs across environments.

For now, if you'd like Python2.5 support, using a version before 0.10 is probably best.


getuserfollowedbyuser give me same response for every call

Hi,
I have called getuserfollowedbyuser to get the following list of a user but every time i call the api only give me same response and pagination isn't changing it's next url. i don't know  what is wrong.
please someone help.
thanks
Niaj

Are you programming in swift?
I've discovered that InstagramPaginationInfo cannot be nil (I'd argue this) but the thing is that if you inspect at runtime, pagination info after fetching the last page is . So what I've done to check if it's the last page is doing:
if nextPagination.nextURL.absoluteString != "" { /* has another page / } else { / this is last page */ }
Hope it helps!
Nico


Collation of corses in !whatsdue

For example getting multiple courses at once would be "!whatsdue csse2310,deco2800"
Which would be useful for integration with #154

Already a feature though. try !whatsdue deco2800 infs2200

no commas needed ;)

Rip me


Documentation is non-existent

There is no documentation instructing setup of the rule, webtask, or slack-bot configurations.  Documentation is required for this to be useful.

Documentation now exists!


Triggers label using neo.MicromedIO

Hello,
I have a .TRC file from sEEG recording and i would like to collect all triggers with their time and labels.
The events label are number from 0 to 255. But by using neo.MicromedIO function, labels from eventarrays are only between 0 and 9.
I checked :

Triggers times are OK
Label that neo return are only the left digit from the event label that i should find (for instance for 99 : it returns 9 )

I tried to change somethings in the micromedio.py program, but i did not success.
Is there any way to collect the entire triggers label ?
Thanks

I finally found the solution by myself !
I changed few line in micromedio.py program :
line 177 :  ea.labels = triggers['label'].astype('S')
Changed by :
try:
ea.labels = triggers['label'].astype(int)
except ValueError:
ea.labels = triggers['label'].astype('S')


Do nothing on conflict

PR Info

Closes

Dependencies:

 https://github.com/SeaQL/sea-orm/pull/1708

Dependents:

New Features

[ ]  added conflicted to TryInsert return type.

Changes

[ ]  updated docs on TryInsert

Please rebase this branch on master

As I said under this situation you should not merge master in, you should rebase on top of master.

#1549


Error building person-detection

Hi,
when trying to build I get:
resolver.cc: In function 'TfLiteStatus tflite::GetRegistrationFromOpCode(const tflite::OperatorCode*, const tflite::MicroOpResolver&, const TfLiteRegistration_V1**)':
/home/edge7/Desktop/projects/ing_edurso/blog/tflite_camera_article/esp32_tflite_person_detection/esp32_person_detection/components/tflite-lib/tensorflow/lite/micro/micro_op_resolver.cc:35:39: error: cannot convert 'const TfLiteRegistration*' to 'const TfLiteRegistration_V1*' in assignment
   35 |     *registration = op_resolver.FindOp(builtin_code);
      |                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
      |                                       |
      |                                       const TfLiteRegistration*
/home/edge7/Desktop/projects/ing_edurso/blog/tflite_camera_article/esp32_tflite_person_detection/esp32_person_detection/components/tflite-lib/tensorflow/lite/micro/micro_op_resolver.cc:46:39: error: cannot convert 'const TfLiteRegistration*' to 'const TfLiteRegistration_V1*' in assignment
   46 |     *registration = op_resolver.FindOp(name);

Can I ask which  tflite commit and esp-nn have you tested?
Thanks

Hello @edge7 it looks like there is some setup issues with your project. Are you able to build the existing examples? Existing person detection example should build and run just fine without any efforts.

Closing this as no activity on the issue and it's most likely a setup issue.


Removes quotes from data url properties which contain brackets

If you have a quoted background-image property value which contains data with brackets (), Clean CSS will remove the quotes even though this breaks the data image e.g.
background-image:url("data:image/svg+xml;...()...");

I thought properties.urlQuotes would address this, but it seems to just strip out quotes after start and end quotes have already been stripped in urls-processor.js:
    .replace(/^url\((['"])? /, 'url($1')
    .replace(/ (['"])?\)$/, '$1)');

  if (!keepUrlQuotes && !/^['"].+['"]$/.test(url) && !/url\(.*[\s\(\)].*\)/.test(url) && !/url\(['"]data:[^;]+;charset/.test(url))
    url = url.replace(/["']/g, '');

And also it looks like these are stripped earlier in the process anyway, because my URLs never have quotes at this point.

@peterjwest sorry, was super busy recently - I can see it happening and will look into it soon.

no problem, thanks!

@peterjwest could you please provide an example data URI for this bug? I need one for testing purposes.

Here's an example:
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22100%22%20height%3D%22100%22%20viewBox%3D%220%200%20100%20100%22%20overflow%3D%22visible%22%3E%3Cdefs%3E%3Cellipse%20id%3D%22a%22%20cx%3D%2250%22%20cy%3D%2250%22%20rx%3D%2250%22%20ry%3D%2250%22%2F%3E%3C%2Fdefs%3E%3Cuse%20xlink%3Ahref%3D%22%23a%22%20overflow%3D%22visible%22%20fill%3D%22%2300f%22%2F%3E%3CclipPath%20id%3D%22b%22%3E%3Cuse%20xlink%3Ahref%3D%22%23a%22%20overflow%3D%22visible%22%2F%3E%3C%2FclipPath%3E%3Cg%20clip-path%3D%22url(%23b)%22%3E%3Cpath%20d%3D%22M0%20100h50V50H0z%22%20fill%3D%22%230f0%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");

I can see it happening when importing from a CSS file. Fix is coming.

:+1: :+1: :+1:

Out in 3.4.7, thanks @peterjwest!

Thanks, I can verify it's working! As a side note, now the first data URL in my CSS file always has double quotes, no matter what the content is.

Hmmm, when I remove url(...) part from SVG above I can clearly see the output without quotes. Any ideas?

No, sorry.


When processing references, extract text from hyperlinks

This PR fixes an error that caused two problems with citations:

Some citations were resolving to the wrong paper
Some citations were not getting detected

It turned out that the issue was with hyperlinks that appear in the references section of a paper. The pipeline maps from citations to papers in a three-step process:

Process the references: for each reference in a .bbl file, extract the LaTeX citation key, and the text for the reference, including title, authors, and venue, if they're present.
Fetch details for references---including titles and S2 IDs---for the paper using the Semantic Scholar API
Map each reference from the .bbl file to an S2 ID by looking for a partial match between the reference title and authors and the text extracted from the bbl file.

The problem was that our utility for extracting the reference text from bbl files left out reference text that was a hyperlink. For some well-known AI conferences, titles are often hyperlinked by default, meaning that the title information for many citations was not present when matching citations to data from the S2 API. This meant that many citations were getting matched to the wrong paper, and some citations were not matched to any paper, because there was insufficient overlap between the reference info from the bbl file and the info from the S2 API.
This PR fixes that issue by augmenting our reference extractor to include text that appears in hyperlinks.

I just added into this PR an additional fix in colorize_tex.py that fixes an issue where multiple entities were assigned the same color when entities were localized in batches. It's included in this PR because it's related to the overarching issue of fixing up citation detection bugs.

@kyleclo asked for an example of the context in which this PR applies. So, take for example paper 1702.01287 (https://arxiv.org/pdf/1702.01287.pdf).
In the references section, many of the references have the titles as hyperlinks, such as this one:

The BBL file for this looks like:
\bibitem[{Bengio et~al.(2003)Bengio, Ducharme, Vincent, and
  Janvin}]{Bengioetal2003}
Yoshua Bengio, R{\'e}jean Ducharme, Pascal Vincent, and Christian Janvin. 2003.
\newblock \href{http://dl.acm.org/citation.cfm?id=944919.944966}{{A Neural
  Probabilistic Language Model}}.
\newblock {\em J. Mach. Learn. Res.\/} 3:1137--1155.
\newblock
  \href{http://dl.acm.org/citation.cfm?id=944919.944966}{http://dl.acm.org/citation.cfm?id=944919.944966}.

where the title apears in an \href command: \href{http://dl.acm.org/citation.cfm?id=944919.944966}{{A Neural   Probabilistic Language Model}}. For some reason, the text for those commands was not getting included in the text we extracted from the BBL files.

@kyleclo asked for an example of the context in which this PR applies. So, take for example paper 1702.01287 (https://arxiv.org/pdf/1702.01287.pdf).
In the references section, many of the references have the titles as hyperlinks, such as this one:

The BBL file for this looks like:
\bibitem[{Bengio et~al.(2003)Bengio, Ducharme, Vincent, and
  Janvin}]{Bengioetal2003}
Yoshua Bengio, R{\'e}jean Ducharme, Pascal Vincent, and Christian Janvin. 2003.
\newblock \href{http://dl.acm.org/citation.cfm?id=944919.944966}{{A Neural
  Probabilistic Language Model}}.
\newblock {\em J. Mach. Learn. Res.\/} 3:1137--1155.
\newblock
  \href{http://dl.acm.org/citation.cfm?id=944919.944966}{http://dl.acm.org/citation.cfm?id=944919.944966}.

where the title apears in an \href command: \href{http://dl.acm.org/citation.cfm?id=944919.944966}{{A Neural   Probabilistic Language Model}}. For some reason, the text for those commands was not getting included in the text we extracted from the BBL files.


application for FIAT-on-off-ramp

Grant Application Checklist

[x] The application-template.md has been copied, renamed ( "project_name.md") and updated.
[x] A BTC or Ethereum (DAI) address for the payment of the milestones is provided inside the application.
[x] The software of the project will be released under the Apache license version 2.0 as specified in the terms and conditions.
[x] The total funding amount of the project is below USD $30k for initial grant applications and $100k for follow-up grants.
[x] The initial PR contains only one commit (squash if needed before submitting your PR).
[x] The grant will only be announced once we've successfully delivered the first milestone.

 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.

Hi - I added the changes you requested. Regarding your questions a quick reply as well:

Regarding the concept, what are potential attack vectors?
Added to the document.

For example, is it correct that if I trade my tokens with someone else (for example I buy a coffee) and after this I empty my bank account, the token itself disappears?
No - but you described an attack vector - see risk mitigation strategies. Nevertheless we see value in our approach, because in many use-cases the beneficiary of the bank account is actually the same person who wants to receive the stable-coin (=Fiat funds), just think of over-the-counter businesses or digital assets: Once asset-tokens are bought, they can float for themselves. Our part is the transparent conversion between Fiat and these tokens. That is why we call it on- off- ramp. The goal here is not to create just another stable-coin, but we focus a mechanism to sync transparently with a pegging account with a Smart Contract. Me might also remove the "transfer" function entirely, maybe that makes it  safer and maybe even clearer.

Also, can’t this system be exploited, by spending the token as well as the money in the bank at the same time or puts a lot of power into the oracle/bank? But maybe I’m missing something here.
Yes, power is on the oracle or the bank. Same problem exists in real world e.g. when buying a property, escrow accounts run by lawyers solve that problem. In our case an escrow could use Smart Contracts to digitize his services.

Thx

Hi - thx a lot for feedback; I did a small merge based on your second feedback, regards - Walter

So if I understand correctly, Milestone 1 doesn't provide any Polkadot-specific deliverables - it's purely a Java app, right? I guess users would be able to run it either locally by building from scratch, or use the provided Dockerfile to bootstrap a Docker image, launch a container and interact with it?
I don't quite see a link between M1 & M2 at the moment. Do you want to have the off-chain worker communicating with a Docker container built in M1?
Lastly, will users be able to link and query their actual accounts upon completion of M1 already? Do you have a list of banks that will be supported? For example for Swiss banks, a quick google search on "EBICS +  < top Swiss retail banks >" shows that this is indeed supported, but only for corporate clients (e.g. CreditSuisse DirectLink, UBS KeyPort)

So if I understand correctly, Milestone 1 doesn't provide any Polkadot-specific deliverables - it's purely a Java app, right?

True - the first version of the grant-md-file, M1 also contained a pallet which wraps the API, but I thought its clearer like that.

I guess users would be able to run it either locally by building from scratch, or use the provided Dockerfile to bootstrap a Docker image, launch a container and interact with it?

Yes - means get daily statement and create payments.

I don't quite see a link between M1 & M2 at the moment. Do you want to have the off-chain worker communicating with a Docker container built in M1?

Yes - the off-chain worker communicates with the docker-image built from M1

Lastly, will users be able to link and query their actual accounts upon completion of M1 already?

Yes

Do you have a list of banks that will be supported? For example for Swiss banks, a quick google search on "EBICS + < top Swiss retail banks >" shows that this is indeed supported, but only for corporate clients (e.g. CreditSuisse DirectLink, UBS KeyPort)

I dont have a list, but you may assume that almost every €-bank in Europe (plus Swiss banks) supports this international standard.  But every country may tweak standards a little, also Switzerland did. I have operated with Swiss, Dutch and German banks, but I assume compatibility with different countries will not be a big issue, because we need just a small part of the standand (pain001, z53).
That only corporate clients are eligable to get the interface - I was not aware of. I guess that is a banks descision. I hope getting that is not be a big deal - my bank (Hypo Lenzburg) is actually a very small Swiss bank, and it was no problem at all. For banks, Ebics is daily business and they use the same system for private and corporate clients. There are many applications which are able to read or generate pain001 or z53 in order to sync with bank-accounts. There are also sandboxes for Ebics - so you dont need to test M1 with a real bank account; e.g. https://prototypefund.de/project/libspsd2-freie-api-und-sandbox-fuer-das-europaeische-finanzsystem/  We never used an Ebics-Sandbox so far, but I guess that will make sense in this project.

I agree this could be an interesting project and in the best case serve as a basis for future integration between blockchain and traditional banking.
However, the proposed scope (which is maybe all that's possible at this stage) is still very limited. Do I understand it correctly that the on-chain accounts would basically mirror the state of the linked bank account, but not provide much functionality? I.e. these stablecoins can't be used for anything other than being burned in order to trigger a bank transfer. They are worthless for most purposes as I can always withdraw all the funds from my bank account and they will become unbacked, which means I can't send them to anyone, trade them for another currency or use them as collateral. The only thing I gain is being able to trigger bank transfers from the blockchain and publishing my bank balance and activity for everyone to see ;)
Now, I'm sure there's some potential I'm not seeing, so what would that be? And what would you need to accomplish in order to get past this barrier?
I also don't see how transfers would work, you state that "anyone who holds stable-coins in his wallet or contract, may burn the coins and 'cash out' FIAT". But anyone who holds stable-coins in his wallet already has this in fiat. Or how else would you intend this to work? Let's say you send me some of your stablecoins, then does the same amount disappear from your bank account and if so where does it go? And otherwise what's stopping you from emptying your bank account before I cash out?

I agree this could be an interesting project and in the best case serve as a basis for future integration between blockchain and traditional banking. However, the proposed scope (which is maybe all that's possible at this stage) is still very limited. Do I understand it correctly that the on-chain accounts would basically mirror the state of the linked bank account, but not provide much functionality?

Yes. The focus of this project and the first grant and MVP is mirroring a bank account, so that’s the functionality. But of course you can use that in any Smart Contracts or other pallets, so use cases are not limited.

I.e. these stablecoins can't be used for anything other than being burned in order to trigger a bank transfer. They are worthless for most purposes as I can always withdraw all the funds from my bank account and they will become unbacked, which means I can't send them to anyone, trade them for another currency or use them as collateral.

I think that statement does not catch it. First we want to create a mechanism for Fiat on- and off ramping, and not just another stable coin. Of course you can create a transferable stable-coin based on the Fiat-on/off ramp (and its the most obvious use-case), but also other things like digital assets/shares or a token which represents participation rights (we gave the example of crowdlitoken.com), or create any Fiat/token exchange similar to Coinbase. But if you create a stable-coin and and if you claim that the coin is fully pegged then you can also do this via an e.g. transparent DAI pegged contract which always satisfies “market cap stablecoin <= pegged DAIs” when minting/burning. Second  it’s about what you claim to do with the Fiat value you receive - issue a stable coin, digital assets, and arty NFT etc - it does not matter in terms of proposed tech here. The first grant is all about the tech which is recording what is happening on a bank account and triggering a payment without bothering with IBAN-account numbers in a smart contract.

The only thing I gain is being able to trigger bank transfers from the blockchain and publishing my bank balance and activity for everyone to see ;)

Yes - that is true. But publishing means to have a “blockchain-proof”, which provides a claim for other things, not just as a published bank balance or transaction. E.g. as a basis for yield-payments after an investment.

Now, I'm sure there's some potential I'm not seeing, so what would that be? And what would you need to accomplish in order to get past this barrier?

We hope that being able to capture an incoming bank-transfer on a chain and to trigger an outgoing payment transaction is already good enough, because its quite painful to work with bank-apis from scratch, and we think that a tested open-source project would be very helpful for the ecosystem. But the biggest potential we see is usability: End-users may transfer value to smart contracts by using a simple wire transfer, no wallets or cryptos needed. Still end-users may benefit from a real, transparent cryptographically secure “blockchain-proof” without owning a wallet or managing wallet addresses.  In order to run a real-world smart contract, you do not need coins and wallets to make the ledger work. I don’t want to stress this argument too much, because it would raise more questions and make things too complicated.

I also don't see how transfers would work, you state that "anyone who holds stable-coins in his wallet or contract, may burn the coins and 'cash out' FIAT". But anyone who holds stable-coins in his wallet already has this in fiat.

Two use cases get mixed here. First use-case is that someone trustworthy (or an escrow)  issues a fully stable-coin like TrueUSD, second case is that someone offers digital assets like crowdlitoken.com, which “sells” something and the issuer is the same entity as the beneficiary of the pegging account. Both cases are valid and supported. We were explicit in the grant that we do NOT want to use “Currency” trait at the moment, because now it is all about getting the Fiat sync done .. which supports both cases. Regarding the question related transfer: Transferring coins is easy, thats clear. Cashing out means “burn” in our case - the API for burn is “burn(amount,clue)” - the key here is the “clue”.  Please check back with the grant-documents, we described how this would work. Maybe it's unfortunate that we are using the same terms for the events here - burning stablecoins and the off-ramping of fiat- I guess we should change that.

Or how else would you intend this to work? Let's say you send me some of your stablecoins, then does the same amount disappear from your bank account and if so where does it go? And otherwise what's stopping you from emptying your bank account before I cash out?

Misunderstanding here is I guess the mix between tech and application of the tech. In case of a fully pegged stablecoin its crucial you trust the issuer.  But in case you sell shares, assets, or you want to shape-shift Fiat payments to some other token, the pegging-argument does not matter. If you buy DOT on Coinbase, you need to trust coinbase that you get the DOTs, before you actually see the dots in your own wallet.  In this grant we don't care what you do based on a Fiat payment, but we want to provide code the on- and off-ramp of Fiat payments, so that you can build on it and do whatever you want, e.g. create a Stablecoin, or a “private stablecoin” which can be used on platforms similar to coinbase, where you first “upload” Fiat funds to buy cryptos or whatever.
To answer the question: transfer does not make funds on bank account dissapear, only burn(amount,clue) does.
Sorry I took I bit more time to answer - I just went of for a short holiday break with family.

@wstrametz could you submit an amendment on the timeline? It's now been 5 months since your last delivery and it's probably time to update the application to match your current roadmap.
Feel free to include any other changes you'd like to make to the application.

@wstrametz friendly reminder.

Hi Aleixo - thx a lot, I appreciate. I sent the update to Dastan
(Polkadot-dev) on Sunday, he will give me feedback today and I also asked
him to give a commitment for the finish line. Thx, Walter
Am Mo., 10. Jan. 2022 um 19:50 Uhr schrieb Aleixo Sanchez <
@.***>:

@wstrametz https://github.com/wstrametz friendly reminder.
—
Reply to this email directly, view it on GitHub
https://github.com/w3f/Grants-Program/pull/348#issuecomment-1009240840,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANV4FN2H4IX2DN7WLUBZGZTUVMS7ZANCNFSM42KFWJZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

--
DI Walter Strametz, IMD Executive MBA
// Founder element36.io
Mobile/WhatsApp: +41 77 2598916
Skype/Telegram ID: wasabrot
LinkedIn: http://bit.ly/2oPsTSw
http://www.blockchain-real.at

Hi @wstrametz, would you mind sharing an update on milestone 2? According to my calculations, your amendment envisaged a delivery in early February.

We try hard to push it this weekend, before Monday dastansam

Hey @wstrametz, are you still interested in this? Note that if we don't hear from you within the next two weeks, we will assume you're no longer interested and terminate the grant.

hi @alxs - yes, but I guess we needed a bit of a push - @dastansam (main developer) had personal issues, his familiy lives next to Russian border. Lets me check back with him and I let you know.

Best wishes to him. Here as last time, it would be great if you could submit an amendment unless you're ready to deliver.

Hi @alxs   - Dastan working on it; should not take too long. Thx

Hi @wstrametz @wasabrot any updates on the status of M3? If it has been delayed further can you please submit an amendment to extend the estimated deadline? Thx

hey @keeganquigley,
I talked with Alex about this in our Element chat and we agreed on making an amendment PR. I just opened it here.
thanks

Hi @wstrametz just checking in to see if you can give us an update on M3?

hey @keeganquigley we are submitting it soon, just need to finalize the documentation and tutorial


form="both" should return a tuple

Inspired by https://github.com/seguid/seguid-tests/issues/8, @BjornFJohansson noted that:
>>> from seguid import *
>>> seguid("ACGT", form="both")
'IQiZTh seguid=IQiZThf2zKn/I1KtqStlEdsHYDQ'

Note how a single string is returned.
We should return a tuple of two strings here, e.g.
>>> from seguid import *
>>> res=seguid("ACGT", form="both")
>>> print(res[0])
'IQiZTh'
>>> print(res[1])
'seguid=IQiZThf2zKn/I1KtqStlEdsHYDQ'

@BjornFJohansson misunderstood this issue; we've moved his discussion to https://github.com/seguid/seguid-python/issues/25.

Undo the change in future.tests. it's not the correct way and it breaks validation of R.

Undo the change in future.tests. it's not the correct way and it breaks validation of R.

I've updated how the future.tests API checks are configured for Python, cf. https://github.com/seguid/seguid-tests/commit/417c38aa787783fe44cf4005111f9ba013bd0d57.


Fixed thali manager stop method

Related to #1596.

This change is

PR is added to the queue for testing as 1. task. (61e9bd5)

Test 97990244 (61e9bd5) build started.

Test (Success) 97990244 build is completed (61e9bd5)
See https://github.com/ThaliTester/TestResults/tree/9799024461e9bd5_Fixed_thali_manager_stop_method_andrew-aladev/ for the logs

Test<PHONE_NUMBER>e9bd5(61e9bd5) has failed
See https://github.com/ThaliTester/TestResults/tree/9799024461e9bd5_Fixed_thali_manager_stop_method_andrew-aladev/ for the fail logs

Reviewed 5 of 10 files at r7, 5 of 5 files at r8, 7 of 7 files at r9.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


expand cache implementations and simplify command line options

To date, I've pushed back on adding alternate caching implementations to the core project.  That stems largely from the fact that this was originally developed just for my own use, and the only caching I use is the filesystem.  The core imageproxy package knows nothing about cache implementations, only cmd/imageproxy does, so adding support for other cache backends just involved changing that package.  That seemed relatively simple enough that I've just instructed people to do that.  Plus, I didn't want to bring along the weight of a bunch of additional storage libraries that weren't going to get used in most cases.
Anyway, all that being said, I think I've changed my mind on this issue.  The increase to the binary size should be minimal in the grand scheme of things, and having support for common backends (namely, s3 and redis) out of the box is worth the trade off.
Cache implementations:

#40 adds support for s3 using https://github.com/sourcegraph/s3cache
some fork somewhere added support for redis, I'll have to track that down
memcache would probably be easy to add, but I'm not sure there's any demand
https://github.com/gregjones/httpcache added leveldb support some time ago, so that would be easy to add if desirable

Additionally, I'd like to simplify the cache-related command line options, particularly in light of adding support for more backends.  I'm thinking about having a single -cache flag that takes a URL (see s3 examples in #40), or a few special values (namely, "memory" for the in-memory cache).  By default, there would be no caching (that would be a change from the behavior today).
The -cacheSize flag would stick around, and would be passed to the cache backends that support a max size.
The -cacheDir flag would probably stick around for a while for compatibility, but it would be deprecated in favor of -cache.

s3 added in ec96fcbc90b346244548b967d2e536a0098e2868

Google Cloud Storage added in 4b63756
Azure Storage added in f1ef8af
Redis has not been added, but should be pretty easily doable using https://godoc.org/github.com/gregjones/httpcache/redis
cacheSize flag was deprecated in 810ecedd
cacheDir flag was deprecated in b88f2b70
I'll leave this issue open until redis support is added.


Implemented new feature Edit->Insert->GUID (Ctrl+Shift+.)

The shortcut key was just picked randomly and can be changed.
I love notepad2-mod and have a lot of scenarios where I need new GUIDs (database scripts, JSON, etc).

Sorry, I messed this up and the accelerator is not working.  I had originally done the change in Visual Studio 2015 but didn't like how it re-wrote the whole .rc file.  I'll submit a new pull request after verifying the fix.


intrinsic types

This adds support for Uppercase<T>, Lowercase<T>, Capitalize<T>, and Uncapitalize<T> both inside and outside template literal types.
TODO:

[ ] support union types being passed as type args to intrinsic types

Codecov Report
Attention: Patch coverage is 62.32877% with 55 lines in your changes missing coverage. Please review.

Please upload report for BASE (main@7114cc8). Learn more about missing BASE report.

Files
Patch %
Lines

src/Escalier.TypeChecker/Unify.fs
70.94%
34 Missing :warning:

src/Escalier.Codegen/Codegen.fs
0.00%
8 Missing :warning:

src/Escalier.Data/Library.fs
11.11%
8 Missing :warning:

src/Escalier.TypeChecker/Folder.fs
44.44%
5 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #343   +/-   ##
=======================================
  Coverage        ?   83.80%
=======================================
  Files           ?       22
  Lines           ?    12038
  Branches        ?     1706
=======================================
  Hits            ?    10089
  Misses          ?     1949
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Bump Apache Lucene from 9.9.2 to 9.10.0

Description
Bump Apache Lucene from 9.9.2 to 9.10.0
Related Issues
N/A

Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[x] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

❌ Gradle check result for 5d9b96d: FAILURE

https://github.com/opensearch-project/OpenSearch/issues/11933
https://github.com/opensearch-project/OpenSearch/issues/5329


Calculate moon ecliptic longitude

Hello, you've got a great project here in that it tells me when the moon will enter a new phase; really awesome, exactly what I need. I'm also looking for the same type of functionality, but for the longitude of the ecliptic (which I would use for calculating the zodiac sign that the moon will be in at that point). Any thoughts on how this could be added? I would be happy to write the software to do this, but I have zero knowledge of the math which would be behind it. Thank you 🙏

It would be another couple equations (along the lines of https://github.com/ryanseys/lune/blob/master/lib/lune.js#L96-L103) to calculate the moon's "mean longitude" and "equation of the center" (which, when added together, give the moon's ecliptic longitude).
This isn't hard, but it is complicated: the moon's close distance and low mass means that a lot of periodic terms (to account for the pull of the sun, venus, mars, etc.) are needed to get reasonable accuracy.
Furthermore, if you're interested in the moon's apparent ecliptic longitude (rather than the geometric ecliptic longitude), you will need to take into account parallax, since the moon's so close (relative to the size of the earth) that where you're located on the earth makes a big difference!
The best source for this that I'm aware of is Astronomical Algorithms, 2nd ed., which is easy to find (e.g. on Amazon) and is worth study.
Good introductory sources (though I might not use them for this library, since they use different and/or incomplete source data which might cause accuracy issues) are Wikipedia and Paul Schlyter's website.
I have a different library that computes this astro if you're interested, though it may be overkill for your use case!

Thanks @ironwallaby for the fast response. I was able to find some implementations of Astronomical Algorithms, but you're right I haven't yet read the original source to understand what is going on.
It seems like the complicated part here is to determine when the moon enters a certain sign in the future (like this library does for phases of the moon). For example this table lists the dates and times for each of the signs, but for obvious reasons I don't want to hard-code all those values into the library.
I actually tried to use astro for this, but I get negative or very large numbers; the api says ms, I believe that means that this should work:
console.log(astro.lunar.longitude(new Date().valueOf()));

Yes, the lunar longitude increases without bound: you will need to modulus it into the 0..360° range!
// get longitude
let longitude = astro.lunar.longitude(Date.now());

// convert from radians to degrees
longitude = longitude * (180 / Math.PI);

// wrap from 0..360
// (this is like "longitude % 360" but always returns a positive number)
longitude = longitude - Math.floor(longitude / 360) * 360;

The simplest way to determine the time when the moon has a particular longitude would be to do (e.g.) a bisection search; a more sophisticated way would be to invert the formula (e.g. solve the formula for longitude) and then do something like Newton-Raphson. (This will be faster, but adds a lot of complexity and probably isn't worth it unless you really want to learn the math :) )

Ahh, thank you! I'll check that out in the morning. As for doing a search, that would be interesting ... to get down to seconds precision. Would need to brush up on either math or algorithms seems like. You've been a big help and I'll check back here after I have some progress. 🙏

Thanks @ironwallaby that code works great. Unfortunately, the precision is less than what I need; I need the 10 second precision provided by AA. The only place I have found something which is giving me accurate results is this page from 1997. The code is licensed GPL and so eventually I'll have to reimplement it.
As for Newton-Raphson, all that I know is what I gleaned from wikipedia, and it's far beyond my memory of math from college days. Since I know each sign is about 2.5 days later, shouldn't be too bad to find them.

MeeusJS is a nice find! Glad you found something that worked for your use-case!


SIMSBIOHUB-61: See Error Message When Submitting Artifacts Fails

Overview
When a request to submit data to Biohub fails, the user should see an appropriate error dialog.
Links to Jira tickets

https://apps.nrs.gov.bc.ca/int/jira/browse/SIMSBIOHUB-61

Description of relevant changes

Removed duplicate code by creating the LoadingButton component as a stand-in for the analogous MUI Lab version
Refactored the Project and Survey submission components
Added an error dialog when the request to submit to Biohub fails

Testing Procedure

Sign into SIMS in an environment that procludes submitting to Biohub (or set BACKBONE_INTAKE_ENABLED to false).
Create or navigate to a project that has unsubmitted documents.
Submit at least one or more documents to Biohub. You should:

[ ] See an error dialog.

Create or navigate to a survey that has unsubmitted artifacts.
Submit at least one or more artifacts, summary results or observations data to Biohub. You should:

[ ] See an error dialog.

Looks great, just the linter complaining about 1 file


Fixes incorrect guest fd encoding

Surfaced when running sunfishcode/misc-tests. When trying to truncate the file without the __WASI_RIGHT_PATH_FILESTAT_SET_SIZE right, error __WASI_ENOTCAPABLE was correctly returned, however, the guest fd pointer was not encoded to -1 in that case. This commit fixes it by taking out the guest fd encoding out of the conditional branch which turns out obsolete.
To elaborate, before this fix, if everything was successful, host_fd with the resultant file descriptor value would be correctly encoded inside the fd pointer. However, if there was an error in host::wasmtime_ssp_path_open call, the host_fd would correctly store wasm32::__wasi_fd_t::max_value() (equivalent to -1) but fd pointer would be untouched due to the encoding operation being behind an if statement which would be triggered only when path_open was successful.

Makes sense.


FTP Client issues

Good to find finally an ftp server that supports basic standard ftp commands ! Unfortunately, after successful connection all commands raise the bellow exception, could you please update the readme with how to use it by windows ftp client for example?

I tried also using an ftp client (GUI) but it does not work ? does need more implementations?

@abdesamie It seems like you're connecting via IPv6 (see output behind EPRT). As stated in the readme: IPv6 is not supported.
Also stated in the readme: GUI clients not supported, because they need a different folder listing format.

Thanks for your reply @pReya , indeed readme was mentioning that ! i wanted that may be the readme can be enriched of some use cases (commands) , do you know how to enforce FTP over IPV4 on Windows client ? otherwise any tips on successfully submitting ftp request to that server

Yes, you're probably right. The readme should contain some example invocations on how to connect with the server. Unfortunately it would take me quite a while to figure this out again. I haven't touched the code in 6 years, and I haven't written a single line of Java since then. Also I don't have a Windows PC, so I'm afraid I can't help with the IPv6 thing. You'll probably have to diasble it globally.
If you figure it out, feel free to create a PR and add the examples to the readme. I'd be happy to merge it.


Trim requested path comparison when using authorizer with local bundles

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 4 (0.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.04%) to 22.671%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundles.go
0
4
0.0%

Files with Coverage Reduction
New Missed Lines
%

bundles.go
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.04%

Covered Lines:
258

Relevant Lines:
1138

💛  - Coveralls


Possibility to open a file.

Is your feature request related to a problem? Please describe
It would make sense if yazi supported a file parameter, where it would then select the chosen file upon opening.
This could be done as it has been done in e.g "lf", there you can type "lf file.txt" and the file well be selected when it opens.
This feature would especially be helpful when integrating yazy into for example neovim, where you would want to open it relative to the currently opened file.
Will you be willing to contribute this feature?

[ ] Yes, I will try to implement it

Describe the solution you'd like
Currently you can pass a directory to yazi, which determines which dir to open.
I would like to have that functionality extended to allow passing files as well.
Describe alternatives you've considered
No response
Additional context
No response

Hi I've made a PR for this, https://github.com/sxyazi/yazi/pull/358, let me know if it works for you!

Hi.
Your PR works perfectly. Thank you for the fix 👍

Thank you for testing!


rawURL typo in GeoLexCheck

There is an extra forward slash in the rawurl string (..DO/I..) that is causing the checkVersion to always report the tool as not current.
rawurl = "https://raw.githubusercontent.com/DO/I-USGS/gems-tools-pro/master/Scripts/GeMS_GeolexCheck.py"

Fixed in v2.13


Error on installation on Ubuntu 16.04

I get

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2019-11-14 03:35:20 EST; 13ms ago
Process: 30273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Process: 30270 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

Nov 14 03:35:19 Myserver nginx[30273]: nginx: [emerg] listen() to [::]:80, ba...e)
Nov 14 03:35:19 Myserver nginx[30273]: nginx: [emerg] listen() to <IP_ADDRESS>:80,...e)
Nov 14 03:35:19 Myserver nginx[30273]: nginx: [emerg] listen() to [::]:80, ba...e)
Nov 14 03:35:20 Myserver nginx[30273]: nginx: [emerg] listen() to <IP_ADDRESS>:80,...e)
Nov 14 03:35:20 Myserver nginx[30273]: nginx: [emerg] listen() to [::]:80, ba...e)
Nov 14 03:35:20 Myserver nginx[30273]: nginx: [emerg] still could not bind()
Nov 14 03:35:20 Myserver systemd[1]: nginx.service: Control process exited, c...=1
Nov 14 03:35:20 Myserver systemd[1]: Failed to start A high performance web s...r.
Nov 14 03:35:20 Myserver systemd[1]: nginx.service: Unit entered failed state.
Nov 14 03:35:20 Myserver systemd[1]: nginx.service: Failed with result 'exit-...'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package nginx-full (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
nginx-full
E: Sub-process /usr/bin/dpkg returned an error code (1)

This SO link might help: https://stackoverflow.com/questions/14972792/nginx-nginx-emerg-bind-to-80-failed-98-address-already-in-use

@Merlincool, do you still have the same issue? If not, please close the issue 👍

No, it was long back and I really do remember what I did, probably I changed by os and did fresh installation.

Yes now I got the answer
I had to sudo killall apache2
I did that and started installation and it worked fine for me. Does that affect anything in my torrent box? or any other apache features of linux?

Yes, both Apache and Nginx are Web server softwares using the same ports etc., unless you do not use default settings.


Can't create new versions of Key Vault secrets

Bicep version
Bicep CLI version 0.4.1318 (ee0d808f35)
Describe the bug
Can't create new versions of existing Microsoft.KeyVault/vaults/secrets@2021-10-01
To Reproduce

Create a bicep file that has a key vault resource, and at least one secret that is a child of the key vault that has a fixed name
Run the template once
Check in the portal that the secret was created
Run the template again

Expected: The secret has a new version
Actual: No new version of the secret has been created
Additional context
none

Can you share the complete code sample you are deploying?

Like Alex said, it'd be good to see the full template here, but what you've described sounds like expected behaviour from Key Vault, in that if the value of the secret hasn't changed, then a new version of the secret won't be created.

I just found time now to look into this and what @mikaelsand and @mattallford  said seems to be correct. Apologies for the noise. It's not the behaviour I expected, in that I didn't think Key Vault would be able to see that the secret values didn't change, but it makes some sense I suppose.
Thank you everyone for looking into this and apologies for the noise.


what is the key issue for GCNs

now i am try to optimize OCL code on GCN GPU, and want to know some VRAM detail.
I cannot understand the GCN's memory archietecture.
nomally,MMU wont affect the memory IO bandwidth if memory  address is page aligned.
but according to the description in https://github.com/RadeonOpenCompute/ROCm/issues/147
2MB fragments  will enhance bandwidth will enhance vega's bandwidth from 260GB/s to 400+GB/s
I check the driver code, it seam that 2MB fragment forcing BO allocated base address being 2MB align, and GMC PTE set fragment according to fragment size.
But it should not affect the bandwidth so much.
during continuous page-align virtual mem loading, the key issue should be memory bank/channel confliction.
why fragmention setting cause so much memory bandwidth diff?
does it because the translating from virutal to phy address handled by software,  nor hw like cpu's MMU?
BTW: what is the interleaving mode for GCN's memory?
row--bank--channel--col or some other mode?the mode is fixed by hardware or can be adjusted by driver?
thanks

Thanks @kemaliu for reaching out.
I will check and get back asap.
Thank you.

I believe in the issue described in #147 is related to TLB reach. Your description of "translation from virtual to physical address handled by software, not HW like CPU's MMU" is incorrect. GCN and CDNA GPUs have a hardware TLB system, with hardware page-table walker, very much like you would find on a CPU. Each compute unit has a separate L1 TLB for the Scalar L1 Data cache, Instruction Cache, and Vector L1 Data Cache.
There is a shared L2 TLB on the chip. It supports caching of two different page sizes into a "smallK" and "bigK" cache, respectively. The bigK cache on the GCN GPUs you are asking about is 32k entries. If you set the fragment size to 2MiB, the L2 TLB can have a "reach" of up to 64 GiB. There is slightly more complexity to our hardware than this, but before the patch discussed in #147, our driver set the bigK page size to 64 KiB, which meant that the TLB only had a reach of up to 2 GiB. The Vega Frontier Edition discussed in #147 has 16 GiB of HBM, so constantly accessing locations across the entire 16 GiB would cause a large number of page table walks, reducing the achievable bandwidth. As such, the use of 2 MiB fragments increased the achievable bandwidth by reducing the amount of bandwidth spent on page table walks.
We interleave L2 cache banks on 256B boundaries, but the mapping of address bits to which L2 cache bank, and the DRAM row, bank, column, channel, and chip-select values are not made public for our GPUs.

Thanks @jlgreathouse for the information shared.
@kemaliu , request you to close this issue if you are OK and do not have any more doubts.
Thank you.

thanks for the responce
I have another 2 question about the wavefronts dispatching pattern.
I wrote some testing code.  enqueue single workgroup, localsize=256 globalsize=256
it seem that one workgroup(local size 256)  run on single SIMD,
because the 4 wavefront, 16x16workitem of the workgroup run in certain order.
and the running order will be disturbed when  globalsize > 256.
question 1.
how many wavefronts can be piped in a single SIMD for the workgroup(local size 256).
according to GCN white paper, there are 4 simd/CU, max 40wavefronts/ CU.It mean that 10 wavefronts can be running in 1 SIMD at save time.
As you know, 256 WI workgroup = 4 wavefronts.
if there are 10 workgroups in 1 CU . 40wavefront = 10workgroup. how the scheduler pipe the 10 workgroups in one CU?the max parallel wavefront number is 40 in a CU, and 10 in one SIMD.
If 1 workgroup(localsize256, 4wavefront) must run parallel in a simd, 10 wavefront of 1 SIMD can only hold 2 complte workgroups.
Does it mean that for workgroup(256 local size), the scheduler can only pipe 8 wavefronts in a single simd at same time, not 10?
or the 4 wavefronts of 1 workgroup can be devided to 2wavefront x 2 and run seperatly?
question 2.
what is the the workgroups dispatching pattern?Workgroups are dispatched to different CU or different SIMD?
for example, we enqueue 2 workgroup(local_size=256, global_size=512)
WG=workgroup
WG0 locate in CU0/SIMD0
where will WG1 be located? CU0/SIMD1 or CU1/SIMD0?

While our current GCN and CDNA GPUs allows up 40 wavefronts in any particular CU, we have a limitation that we can only have (32 compute wavefronts * ${number_of_physical_cus}) wavefronts in flight at once. So a CU with 40 waves on it will necessarily mean that some CUs have fewer waves on them. (It's slightly more complex than this due to our multi-shader-engine design, but hopefully this makes the point clear). This design was partially done to leave room for things like pixel shader waves in graphics workloads, and partially to help mitigate under-utilization for workloads with waves that complete at different speeds.
Workgroups must run on the same CU, but different waves from a single workgroup can run in the same SIMD or different SIMDs. There is no limitation that waves from a workgroup must run in the same SIMD.
The workload dispatching pattern is that the asynchronous compute engine (ACE) reads the kernel dispatch packet, then cracks the kernel into workgroups. It distributes workgroups to the shader engines in a round-robin manner. See slides 8-16 of this presentation for an illustration.
Once the workloads have been distributed to the SEs, the per-SE workgroup manager in each SE will crack the workgroups into 64-thread wavefronts in an X-then-Y-then-Z walk of the workgroup's dimensionality. The workgroup manager will look for any CU with enough open wave-slots, and then attempt to schedule the waves into those slots once the entire workgroup can fit. In an empty GPU, the workgroup manager will attempt to spread workgroups across CUs (e.g., sending two workgroups to an empty SE will result in one workgroup in two different CUs), and it will attempt to spread wavefronts across SIMDs (e.g. sending a 4-wave workgroup to an empty CU will result in one wave per SIMD).
You could attempt to analyze these work distribution algorithms using the HW_ID values as demonstrated in the HIP __smid() function, as described here.

@jlgreathouse @kemaliu
I believe I have a related issue (L2 cache bank conflicts) in my VkFFT code. I can describe it as the following: bandwidth drops when I try to do distant, but coalesced memory accesses, i.e. data are still grouped in 128b transactions but target addresses with > 2^18 bytes between them (and the bigger the distance - the bigger the drop). This has the biggest impact when distant accesses are separated by power of 2 amount of bytes (I have previously asked about this here: https://github.com/RadeonOpenCompute/ROCm/issues/1294).
The only documentation on this issue available is from Tahiti age: https://rocmdocs.amd.com/en/latest/Programming_Guides/Opencl-optimization.html#channel-conflicts
The issue is present both in Vulkan and HIP backends of VkFFT. I tried to solve this with splitting the buffer logically into smaller chunks of memory (~16KB range), though AMD Vulkan implementation couldn't handle more than 128 buffers bound (even though It was supported by specification). So, I am not sure what can be done about this without an understanding of what is actually happening. Nvidia GPUs doesn't seem to have these issue.

@jlgreathouse @kemaliu
I believe I have a related issue (L2 cache bank conflicts) in my VkFFT code. I can describe it as the following: bandwidth drops when I try to do distant, but coalesced memory accesses, i.e. data are still grouped in 128b transactions but target addresses with > 2^18 bytes between them (and the bigger the distance - the bigger the drop). This has the biggest impact when distant accesses are separated by the power of 2 amount of bytes (I have previously asked about this here: #1294).
The only documentation on this issue available is from Tahiti age: https://rocmdocs.amd.com/en/latest/Programming_Guides/Opencl-optimization.html#channel-conflicts
The issue is present both in Vulkan and HIP backends of VkFFT. I tried to solve this by splitting the buffer logically into smaller chunks of memory (~16KB range), though AMD Vulkan implementation couldn't handle more than 128 buffers bound (even though It was supported by the specification). So, I am not sure what can be done about this without an understanding of what is actually happening. Nvidia GPUs don't seem to have this issue.

I read your issue. It seems you have the same quesion about the TLB and address pins' management .
but if you use the large stride like 2^18 and small data transaction(128bit/16Bytes), this accessing mode must  causing the low memory bandwidth in all platform. normally the memory hardware interleaving mode is col:channel:bank:row or col_low:chan:bank:col_high:row. but all the modes can handle small memory stride only. small stride data blocks will locate in different bank/channel, but large aligned stride data blocks must cause serious bank/channel confliction.
in your 1D benchmark, there is a bandwidth dropping between 2^12  & 2^13 . hbm channel width 128 bit = 16 B, 2^12/16B = 256.  and the hbm col address pin is 8.  maybe it is the reason of the bandwidth dropping.
you can test the different stride like (2^18 + 0x80) or (2^18+0x200) and so on...the bandwidth may be much higher than 2^18 stride.

Hello,
On Nvidia GPUs, this issue is less impactful - the only needed change to restore full bandwidth after 2^18 strides was to go from 32b to 128b coalescing, so it seems there is a way around this.
The drop at 2^12 is happening due to the fact that I start transfer 2x more memory there, so it is not related to the issue. The question is only about strides >  2^18. Having padding is not really an option as the overall buffer is user-defined and I can't force them to have a special layout for each case. I thought that I can find a way around it by reorganizing read/write orders (and have the non-power-of-2 strides emulated), but it would have been much easier if I understood the issue better.
Best regards,
Dmitrii

Hi all,
I hope this issue can be closed if we do not have any more points to discuss.
Thank you.

Thanks all.
I am closing this as there is no more questions/update from anyone.
Feel free to file a new issue, if any.
Thank you.


Statics prevents tree-shaking

While all statics prevent the tree-shaking at the moment I plan to change that in the near future by tweaking the babel transforms, I have already an old PR for this - https://github.com/babel/babel/pull/6963 but I need to revive it.
That being said it only has a chance to solve this problem for statics created with class properties syntax. I consider any other top-level static properties to be sort of an anti-pattern.
So in my opinion those:
Keyframes.Spring = Keyframes.create(Spring)
Keyframes.Spring.to = states => Keyframes.Spring(states, interpolateTo)
Keyframes.Trail = Keyframes.create(Trail)
Keyframes.Trail.to = states => Keyframes.Trail(states, interpolateTo)
Keyframes.Transition = Keyframes.create(Transition)

should be refactored and exposed as separate exports, not attached to the Keyframes class.

This could be a new major release. I wonder though how, you mean KeyFramesSpring, KeyFramesSpringTo, KeyFramesTrail, KeyFramesTrailTo, etc?
Or should be simply expose the create function and be done with it?

This could be a new major release. I wonder though how, you mean KeyFramesSpring, KeyFramesSpringTo, KeyFramesTrail, KeyFramesTrailTo, etc?

That is definitely one way to go. This would imho be "the best" option because the users would be able to just pick what they import and wouldnt get the whole Keyframes "bundle" by default.

Or should we simply expose the create function and be done with it?

I guess that would increase the complexity (for the user) quite a bit.
Alternatively if you like the current API you might want to experiment with smth like this:
class Keyframes extends React.PureComponent {
  static create = primitive => (states, filter = states => states) => {
    if (typeof states === 'function' || Array.isArray(states))
      states = { [DEFAULT]: states }
    const fn = props => (
      <Keyframes
        primitive={primitive}
        states={states}
        filter={filter}
        {...props}
      />
    )
    fn.to = states => primitive(states, interpolateTo)
    return fn
  }

  static Spring = Keyframes.create(Spring)
  static Trail = Keyframes.create(Spring)
  static Transition = Keyframes.create(Transition)
}

i think it even used to be like that, but one rollup version couldn't compile it, so i changed it. Maybe it was just a fluke - but i'd gladly pick that solution.

Closing since the Keyframes API is deprecated


Increase service-meta font sizes

This is, I think, the intended effect of @Wynndow's pull request in the frontend-toolkit.
@ralph-hawkins says we want the headers to be the same size as the text for the service meta-info, but bumping the font-size of the organisation won't have a visible effect on the service page.
This pull request:

bumps the service meta headers
uses the .visuallyhidden styles for the organsation name instead of display: none;
adds an id and an h2 to the A-Z supplier listing template to give the service pages and the supplier pages matching markup.

service meta headers

old
new

supplier A-Z page
The contact information now says "Contact" instead of listing the supplier name (which is already the title of this page).

old
new

👍


Limit API response with filter

Is your feature request related to a problem? Please describe.
I am polling api/configuration-service/v1/project as i want to know how many projects I have and to grab their names. The response body is quite large and even includes events for each service and stage
Describe the solution you'd like
A way to limit the response of the APIs with something like a includeDetails=false? The same way we can in dynatrace
Describe alternatives you've considered
Currently i poll the whole thing and do client side filtering but this adds an unnecessary overhead on both sides and slows down the request.
Additional context
Really if i could even just excluded all the events in that request i think it would be fine

Hi @alipatton10,
thank you for the issue! We see the problem and plan to improve the API in this regard.


[AutoComplete] onNewRequest doesn't trigger when searchText is empty

Problem description
As described in the title, if searchText === '', pressing Enter in the text field doesn't call onNewRequest. This is rather problematic as many use cases include clearing the search if the user deletes the whole search value and submit.
Link to minimal working code that reproduces the issue
<AutoComplete
  floatingLabelText="Search"
  searchText={searchInput}
  onUpdateInput={updateSearch}
  onNewRequest={console.log} // Does not trigger when the value of searchText is ''
  dataSource={[]}
/>

Versions

Material-UI: ^0.17.1,
React: 15.4.1
Browser: Chrome Version 57.0.2987.133 (64-bit) (OS X)

"openOnFocus" from the AutoComplete is defective #6659
this is related to this issue as well.

Closed by #4783