GITHUB-69: Add Google Cloud Logging provider support

✏ Changes
This PR adds the provider for Google Cloud Logging to push Auth0 logs into Google Operations (formerly StackDriver)
🔗 References
Fixes #69
🎯 Testing
Since custom Webtasks are no longer available, I am unable to test this myself.
🚫 This change has been tested in a Webtask
🚫 This change has unit test coverage
🚫 This change has integration test coverage
🚫 This change has been tested for performance
🚀 Deployment
I have provided the logo image in the gcp-logging.json as a SVG data URI however this should probably be moved into the Auth0 CDN as a standalone SVG file.
I have attached the PNG in a few forms and a zipped SVG as well.

cloud-logging-512-color.svg.zip

Yes. Still relevant.  Need internal comment.

Yes it is so relevant and the only thing we can do is wait on Auth0

Adding a comment cause I am interested in this PR as well.

Would love to see this functionality in auth0. Is there anything we can do to help this over the line?


Promises don't seem to work alongside interception handlers at all

I've a replica of my code at https://runkit.com/zzzombo/58dfa8c92830330014a71865 with minor adaptations that shouldn't affect the results. I've tested the response intercept handler, it is never waited for and thus it can't change the response as intended. The output console log is out of order, as indication.

This is where I think the problem is:
proxy.intercept(params,(req,res,pxy) =>
{
    fn.forEach((fn) => fn(req,res,pxy));
});

You have to return a promise from that callback otherwise Hoxy has no way of knowing there's anything to wait for.
Hope that helps.


Puppet 6.11.0 is breaking monkey patches for Puppet::Pops::Loader::NullLoader

  1) PuppetLanguageServerSidecar with Feature Flag puppetstrings when running default_aggregate action should return a cachable deserializable aggregate object with all default metadata
     Failure/Error: raise "Expected exit code of 0, but got #{status.exitstatus} #{_stderr}" unless status.exitstatus.zero?

     RuntimeError:
       Expected exit code of 0, but got 1 C:/Source/puppet-editor-services/lib/puppet-languageserver-sidecar/puppet_monkey_patches_puppetstrings.rb:79:in `<module:Loader>': uninitialized constant Puppet::Pops::Loader::NullLoader (NameError)
        from C:/Source/puppet-editor-services/lib/puppet-languageserver-sidecar/puppet_monkey_patches_puppetstrings.rb:78:in `<module:Pops>'
        from C:/Source/puppet-editor-services/lib/puppet-languageserver-sidecar/puppet_monkey_patches_puppetstrings.rb:77:in `<module:Puppet>'
        from C:/Source/puppet-editor-services/lib/puppet-languageserver-sidecar/puppet_monkey_patches_puppetstrings.rb:76:in `<top (required)>'
        from C:/Source/puppet-editor-services/lib/puppet_languageserver_sidecar.rb:97:in `require'
        from C:/Source/puppet-editor-services/lib/puppet_languageserver_sidecar.rb:97:in `block in require_gems'
        from C:/Source/puppet-editor-services/lib/puppet_languageserver_sidecar.rb:95:in `each'
        from C:/Source/puppet-editor-services/lib/puppet_languageserver_sidecar.rb:95:in `require_gems'
        from C:/Source/puppet-editor-services/lib/puppet_languageserver_sidecar.rb:209:in `init_puppet_sidecar'
        from puppet-languageserver-sidecar:11:in `<main>'
     # ./spec/languageserver-sidecar/integration/puppet-languageserver-sidecar/featureflag_puppetstrings/featureflag_puppetstrings_spec.rb:20:in `run_sidecar'
     # ./spec/languageserver-sidecar/integration/puppet-languageserver-sidecar/featureflag_puppetstrings/featureflag_puppetstrings_spec.rb:101:in `block (3 levels) in <top (required)>'

Finished in 3.22 seconds (files took 11.24 seconds to load)
1 example, 1 failure

Failed examples:

Removed in https://github.com/puppetlabs/puppet/pull/7619

Source is here
https://github.com/puppetlabs/puppet/blob/6.10.1/lib/puppet/pops/loader/null_loader.rb

Hrmmm also it appears the Puppet Stack has been modified
https://github.com/puppetlabs/puppet/commit/88592b894afd436fc6f2a957c12ea2ae16463d5e
and Debug Server can longer get access to the call stack 😢😢


Add setReleaseMode

Is your feature request related to a problem? Please describe.
We should add a method for finishMode something like in audio player has asetReleaseMode
Describe the solution you'd like
We should option that the user will have choices to choose if it enable the loop mode or not

So your proposal is to add a method to set release mode instead of setting it from startPlayer right?

yup that is right we should remove the finishMode parameter in startPlayer, it is prefer to create a setReleaseMode


New style of refinement logic

I've been theorizing a new way to arrange PRLs which can lead to a big decrease in the number of necessary rules. Currently, there is a conceptual duplication of rules for inhabitation (which produce a program as extract), and rules for equality (which produce a trivial extract).
One way to resolve the contradiction is to start from a judgment of "twin inhabitation", which produces two extracts which are equal to each other in the appropriate type. Then, the equality judgment can be introduced uniformly using the inhabitation judgment and a syntactic equality judgment: to show that e1,e2 are equal elements of type A, show that inhabit A is inhabited such that the twin extracts are exactly e1,e1.
Then, all the structural equality rules become derivable.
The only obstacle to doing this in RedPRL is that our refinement apparatus doesn't support multiple outputs / extracts; however, we can work around this by having a sort for "twin elements" and auxiliary judgments to project these elements. Using some helper functions, the refiner can be written without being too bureaucratic.

Question: does the potential optimization I want to do in #206 which produces MEM when possible will be unnecessary in the new style?

@favonia I'm not really sure what you're referring to.

I was thinking that, when proving that a hcom is in some type (the unary version), maybe some of the goals can be of the unary version (membership) instead of the binary version, but then realized maybe a solution to this issue (#208) will make this kind of optimizations useless.

@favonia I see! It's worth noting that membership vs equality is only an optimization at the level of writing the code of the refiner, since membership is actually nothing more than a notation for equality—to prove membership, you must prove equality.


Reply already submitted

Dear kakzaki,
Thank you for thus useful widget. I really need this widget right now.
I have downloaded and try the example, but still face error when press connect button.
The app is automatically closed and sometime send me bug report like this:

Really appreciate for your help.

Saya lihat anda orang indonesia jadi saya pakai bahasa indonesia saja
pakai flutter versi berapa?
apakah sudah migrate ke androidx?

Sudah pakai yang teruodate. Androidx juga.
On Sat, Jul 13, 2019, 4:29 PM kakzaki<EMAIL_ADDRESS>wrote:

Saya lihat anda orang indonesia jadi saya pakai bahasa indonesia saja
pakai flutter versi berapa?
apakah sudah migrate ke androidx?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kakzaki/blue_thermal_printer/issues/5?email_source=notifications&email_token=AAKFQTBQAPGLIQMHAK3EB4TP7GN7BA5CNFSM4ICZPJA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ3OAOY#issuecomment-511107131,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKFQTFTKYSITW755BL42HLP7GN7BANCNFSM4ICZPJAQ
.

berikut errornya dari android studio 3.4.2:
07/13 17:26:32: Launching app
$ adb shell am start -n "id.kakzaki.blue_thermal_printer_example/id.kakzaki.blue_thermal_printer_example.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Waiting for process to come online
Connected to process 16523 on device xiaomi-pocophone_f1-6debb4d9
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
D/libEGL: eglInitialize: enter
eglInitialize: exit(res=1)
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 2
W/RenderThread: type=1400 audit(0.0:100490): avc: denied { search } for name="ctx" dev="debugfs" ino=14030 scontext=u:r:untrusted_app:s0:c1,c257,c512,c768 tcontext=u:object_r:qti_debugfs:s0 tclass=dir permissive=0
W/1.gpu: type=1400 audit(0.0:100491): avc: denied { search } for name="ctx" dev="debugfs" ino=14030 scontext=u:r:untrusted_app:s0:c1,c257,c512,c768 tcontext=u:object_r:qti_debugfs:s0 tclass=dir permissive=0
W/BluetoothAdapter: getBluetoothService() called with no BluetoothManagerCallback
D/BThermalPrinterPlugin: android.bluetooth.device.action.ACL_CONNECTED
E/BThermalPrinterPlugin: Methods marked with @UiThread must be executed on the main thread. Current thread: AsyncTask #2
java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: AsyncTask #2
at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:795)
at io.flutter.embedding.engine.FlutterJNI.invokePlatformMessageResponseCallback(FlutterJNI.java:728)
at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:140)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:225)
at id.kakzaki.blue_thermal_printer.BlueThermalPrinterPlugin.lambda$connect$0$BlueThermalPrinterPlugin(BlueThermalPrinterPlugin.java:309)
at id.kakzaki.blue_thermal_printer.-$$Lambda$BlueThermalPrinterPlugin$JxnBuByWzwnPoLoXadcl8ktG62Q.run(Unknown Source:6)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
E/BThermalPrinterPlugin: Reply already submitted
java.lang.IllegalStateException: Reply already submitted
at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:135)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:230)
at id.kakzaki.blue_thermal_printer.BlueThermalPrinterPlugin.lambda$connect$0$BlueThermalPrinterPlugin(BlueThermalPrinterPlugin.java:312)
at id.kakzaki.blue_thermal_printer.-$$Lambda$BlueThermalPrinterPlugin$JxnBuByWzwnPoLoXadcl8ktG62Q.run(Unknown Source:6)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: id.kakzaki.blue_thermal_printer_example, PID: 16523
java.lang.IllegalStateException: Reply already submitted
at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:135)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:230)
at id.kakzaki.blue_thermal_printer.BlueThermalPrinterPlugin.lambda$connect$0$BlueThermalPrinterPlugin(BlueThermalPrinterPlugin.java:316)
at id.kakzaki.blue_thermal_printer.-$$Lambda$BlueThermalPrinterPlugin$JxnBuByWzwnPoLoXadcl8ktG62Q.run(Unknown Source:6)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
I/Process: Sending signal. PID: 16523 SIG: 9
Application terminated.

any update?
saya lihat ada beberapa isue serupa di group:
https://github.com/flutter/flutter/issues/29092
ada versi apk yang sudah jalan gak? mungkin bisa di japri ke saya.
<EMAIL_ADDRESS>tq.
[image: Mailtrack]
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&
Sender
notified by
Mailtrack
https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&
07/18/19,
10:18:54 AM
On Sat, Jul 13, 2019 at 4:38 PM Samuel Surya<EMAIL_ADDRESS>wrote:

Sudah pakai yang teruodate. Androidx juga.
On Sat, Jul 13, 2019, 4:29 PM kakzaki<EMAIL_ADDRESS>wrote:

Saya lihat anda orang indonesia jadi saya pakai bahasa indonesia saja
pakai flutter versi berapa?
apakah sudah migrate ke androidx?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kakzaki/blue_thermal_printer/issues/5?email_source=notifications&email_token=AAKFQTBQAPGLIQMHAK3EB4TP7GN7BA5CNFSM4ICZPJA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZ3OAOY#issuecomment-511107131,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKFQTFTKYSITW755BL42HLP7GN7BANCNFSM4ICZPJAQ
.

I also faced same issue any solution ?

This code working on Flutter version below 1.7 . In my system i installed latest version of flutter 1.7.8 i faced same issue . but my friend installed lower than 1.7 its working fine in his system,

Yeah, facing this issue after upgrade flutter

Versi Flutter yang saya pakai
`Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.7.8+hotfix.3, on Microsoft Windows [Version 10.0.18362.239], locale en-ID)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[√] Android Studio (version 3.4)
[√] Connected device (1 available)
• No issues found!
`

Versi flutter yang saya pakai
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.7.8+hotfix.3, on Microsoft Windows [Version 10.0.18362.239], locale en-ID)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[√] Android Studio (version 3.4)
[√] Connected device (1 available)
• No issues found!

Same here, downgraded and it worked, but as for August 1, we should use the 1.7.8 or no playstore updates for our apps

Hi, downgraded to which version?
On Tue, Jul 23, 2019, 7:20 AM Ricardo Chen<EMAIL_ADDRESS>wrote:

Same here, downgraded and it worked, but as for August 1, we should use
the 1.7.8 or no playstore updates for our apps
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/kakzaki/blue_thermal_printer/issues/5?email_source=notifications&email_token=AAKFQTH2LRAPS4Y4QYY4K2TQAZFFVA5CNFSM4ICZPJA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2RRCOY#issuecomment-514003259,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKFQTG6BPWMWBELMTCWXQDQAZFFVANCNFSM4ICZPJAQ
.

Maybe a fix for this
https://github.com/flutter/flutter/issues/34993

Hi, downgraded to which version?
…
On Tue, Jul 23, 2019, 7:20 AM Ricardo Chen @.***> wrote: Same here, downgraded and it worked, but as for August 1, we should use the 1.7.8 or no playstore updates for our apps — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#5?email_source=notifications&email_token=AAKFQTH2LRAPS4Y4QYY4K2TQAZFFVA5CNFSM4ICZPJA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2RRCOY#issuecomment-514003259>, or mute the thread https://github.com/notifications/unsubscribe-auth/AAKFQTG6BPWMWBELMTCWXQDQAZFFVANCNFSM4ICZPJAQ .

v1.5.4-hotfix.2

I just fixed the code, could not do a pull request, no permissions.  I did a fork with the updated code if anyone is interested.  Until Kakzaki updates this
https://github.com/ricardochen/blue_thermal_printer

Awesome. it is working. Thank you.

Sorry for the late reply, btw thanks guys for your contribution especially ricardochen, this fix is already on blue_thermal_printer 1.0.8


Good job!

This Code implemented by pytorch is great and excited. Thanks for your working and how soon will you provide the performance (such as mIoU)  by this code?

Results will be available soon.

Thank you for sharing the code. It saves me hours.
Mark


Port Persistence to C#

The persistence module needs to be ported over to C# too.
We need to come up with a plan how to use plugins in C#.
In Go, we use embedded fields, this is not available in C#.
I would like to avoid basing this kind of functionality on inheritance at all cost.
We did this in Akka.NET resulting in many many permutations of ReceiveActor, PersistentReceiveActor etc.
Suggestions?

Given a receive pipeline like that which exists in Go right now, adding persistence without inheritance shouldn't be too difficult.
The main problem that I see is to find a suitable replacement for the mixin/embedded field. One option is to replace it with an interface that you need to implement, containing the ProviderState, EventIndex, etc. The downside of it is that the implementation of those properties will be forced upon each actor implementation. One way of making it a bit easier on the actor implementer is to wrap all of the embedded fields in a composed type.
So you would have something like the below. It is basically equivalent to the Go implementation except you need to "dot in" to access the persistence stuff, and the Actor needs to implement an auto-property from the interface. Thoughts?
class MyPersistentActor : IPersistentActor
{
    public PersistenceState PersistenceState { get; set; }
}

public interface IPersistentActor
{
    PersistenceState PersistenceState { get; set; }
}

public class PersistenceState
{
    public ProviderState ProviderState { get; set; }
    public int EventIndex { get; set; }
    public IContext Context { get; set; }
    public bool Recovering { get; set; }

    public void Init(PersistenceProvider provider, IContext context)
    {
        ProviderState = provider.GetState();
        Context = context;
        Recovering = true;
        //... more init code
    }
}

Receive Using(PersistenceProvider provider)
{
    return context =>
    {
        switch (context.Message)
        {
            case Started started:
                break;
            case Replay replay:
                var p = context.Actor as IPersistentActor;
                if (p != null)
                {
                    p.PersistenceState = new PersistenceState();
                    p.PersistenceState.Init(provider, context);
                }
                break;
        }
    };
}

Love it, your interface suggestion is as good as it gets in C# IMO.
I cant see any other non magic way of doing this with less code.

Cool, I'll get to work on the receive pipeline first, then continue with persistence.

This has been merged, closing


Matter TE4 fixes

Problem

CASE fails on K32W because heap is not sufficient. This commit fixes this problem.

Change overview

decrease stack size (allocated dinamically) for most of the tasks
(by using the Stack Water Mark feature in FreeRTOS);
improve debugging by adding more logging related to timestamps and
increase the CPU speed to 48Mhz
(see https://github.com/project-chip/connectedhomeip/pull/7717)

Testing

manual testing

@doru91 I would strongly suggest putting the logging changes in a separate PR, given the concerns around them and the fact that they presumably are not critical for TE4....

I don't see where the Heap is increased? Is your heap allocated to remaining free RAM so decreasing the tasks stack size does increase the heap or am I missing something

That's right, I decreased the tasks' stack size for gaining some heap space.

@doru91 I would strongly suggest putting the logging changes in a separate PR, given the concerns around them and the fact that they presumably are not critical for TE4....

Agree, I removed the logging changes from this PR.


[Enhancement]: Use boost interprocess for data exchange

Description
We are currently using stdout for sending PoV data for Parachains validation in a separate process
Motivation
Stdout is too slow
Additional context
No response
Are you planning to do it yourself in a pull request ?
No

Also please rewrite workers.cpp from lambdas to some form of coroutine, Boost.ASIO supports multiple of them. It's hard to read it now.


Main to 3.1; Upgrade Dependency Versions

Also compatibility changes for Mockito 5.

There are also a couple tests failing.
Probably they also need an explicit @Qualifier for their autowire props...


[move-prover] Assume module invariants for cross-module calls.

This assumes module invarians for a call to a function from another module. This was a missing piece in #3037 and (should) complete the implementation.
Motivation
Global specifications.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
New test case.
Related PRs
#3037

@bors-libra r=sblackshear

:pushpin: Commit 0a8b290 has been approved by sblackshear

:hourglass: Testing commit 0a8b2907eebc117b1eba8768de282fae6eb23d15 with merge 936f5c1052133cb4e4e8aaf39668c338c5f5ee71...

:broken_heart: Test failed - checks-actions_land_blocking_test

@bors-libra retry

:hourglass: Testing commit 0a8b2907eebc117b1eba8768de282fae6eb23d15 with merge 0427c083ad6bd7fea5b1d3d7fac72830227f28df...

:broken_heart: Test failed - checks-actions_land_blocking_test

@bors-libra retry

:hourglass: Testing commit 0a8b2907eebc117b1eba8768de282fae6eb23d15 with merge b027e60c49e9dafa4bf4a494012223df4971de58...

:broken_heart: Test failed - checks-actions_land_blocking_test

@bors-libra retry

@bors-libra r=sblackshear

:pushpin: Commit c7205ef has been approved by sblackshear

:hourglass: Testing commit c7205ef3e828e48af0ad6a706f8b81ea5ce5c027 with merge e964a86e7a097ff27a77805a9462ec23d0d3af66...

:broken_heart: Test failed - checks-actions_land_blocking_test

@bors-libra retry

:hourglass: Testing commit c7205ef3e828e48af0ad6a706f8b81ea5ce5c027 with merge 264a1507d9a8a615f30b274fe9177ce157c95e55...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: sblackshear
Pushing 264a1507d9a8a615f30b274fe9177ce157c95e55 to master...


Reposition modal UX changes

Describe your changes
Link the related issue
_Closes #2349
Checklist before requesting a review

[ ] Is this a PR meant for test purposes? If so, please open/change to a draft PR to indicate work in progress/test.
[x] I have performed a self-review of my code.
[x] Did you request feedback from another team member prior to merge?
[x] Does my code following the style guide at docs/CODING-STYLE.md?

the header text is too large
the est. new fields dont update properly. sometimes when initally clicking reposition the dont update at all. if switching between multiple positions to be repositioned it often uses the values from the previous position. resulting in things like this -

this flows through to the confirmation modal. its unclear what would happen if i tried to send this through. but it appears as though i will lose a lot of money
the confirmation modal has a few issues -
the token logos are wrong.
the in range/out of range indicator appears wrong (this MAY have been a design decision im not sure)

the apr color is incorrect

i definitely misunderstood this ticket as talking about the "reposition modal" as the view that shows up in the module area when you click 'Reposition'. Will update this ticket with the changes mentioned above, tyty for the notes and updates @benwolski @miyuki-eto

i definitely misunderstood this ticket as talking about the "reposition modal" as the view that shows up in the module area when you click 'Reposition'. Will update this ticket with the changes mentioned above, tyty for the notes and updates @benwolski @miyuki-eto

yeah sorry. it was kinda referring to both. the area in the right side order input section, and also the modal that pops up when submitting the order

changes should be in!
regarding the bug showing "older" new estimates. the calculation isn't instant which is why it appears to linger on the older value for some time. for now, ive added a ... placeholder while the new estimate is being calculated
@miyuki-eto lmk any more changes you'd like

new issue to capture bug with the inconsistent est. new fields https://github.com/CrocSwap/ambient-ts-app/issues/2528


Implement Map vs. HashMap benchmark

monad-metrics keeps Counters, Gauges and others in a Map, using
the metric name (Text) as key.
Using HashMap from unordered-containers instead seems to give a
performance improvement for lookup, which is a common operation:
tack --resolver=lts-9.0 bench
monad-metrics-<IP_ADDRESS>: benchmarks
Running 1 benchmarks...
Benchmark monad-metrics-bench: RUNNING...
benchmarking Map/lookup
time                 373.0 ns   (371.3 ns .. 375.2 ns)
                             1.000 R²   (1.000 R² .. 1.000 R²)
mean                 372.6 ns   (371.7 ns .. 374.2 ns)
std dev              3.976 ns   (2.218 ns .. 6.173 ns)

benchmarking HashMap/lookup
time                 98.26 ns   (98.00 ns .. 98.60 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 98.21 ns   (98.04 ns .. 98.62 ns)
std dev              883.0 ps   (412.2 ps .. 1.770 ns)

Benchmark monad-metrics-bench: FINISH

Admittedly, the benchmark is slightly contrived because of the common
prefix of the generated metric names.

This PR is mostly for historical purposes, see #5. No real need to merge.
If merged,  beware of version bounds which may be more strict than what's supported by the package proper.

Thanks for the PR! I am going to link from the changelog.


⚠ Bofrost.fr has degraded performance

In e7d914f, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1357 ms

Resolved: Bofrost.fr performance has improved in 18b03f1.


[MCS-DE-GO] Change query to LUIS & QnAMaker within the Bot Runtime to include optional parameters

When sending a query to LUIS we want to be able to control the logging behaviour via the optional LUIS API parameter "log" (boolean). This is relevant for GDPR compliance. We want to turn this on/off via an appsetting.

When sending a query to LUIS we want to be able to control which publishing slot in LUIS (Staging or Production) is being used. We want to configure which slot to use via appsettings.
See for 1 and 2: https://westus.dev.cognitive.microsoft.com/docs/services/luis-endpoint-api-v3-0/operations/5cb0a91e54c9db63d589f433

When sending a query to QNAMAKER we want to be able to send the optional "userID" information for logging. This is relevant for GDPR compliance. We want to turn this on/off via an appsetting.
See: https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamakerruntime/runtime/generateanswer

@joaollq @sgellock @benbrown

related to microsoft/botframework-cli#805

@pchoudhari I do not see UserID exposed via the the qnamakerrecognizer. Can you comment?

Given we do not have any plans to address the QnA side of this ask, the rest will be tracked via microsoft/botbuilder-dotnet#4149

@vishwacsena, not doing this may prevent QnA from being used in Germany.

@pchoudhari can you comment? Should the API documentation needs update to drop UserId? What is the customer mitigation for GDPR compliance in absence of UserId?

In case of QnA Maker all the user data and logs are stored in the customer's Azure subscription. So, I don't think there is an issue of GDPR. @sgellock, are there any specific requirements for userId in Germany?

@pchoudhari I've reached out to the customer.  will provide an update here when I hear back from them.

Hi guys,
if you don't support sending this optional parameter via the API, why is it in the documentation?
https://docs.microsoft.com/en-us/rest/api/cognitiveservices/qnamakerruntime/runtime/generateanswer#request-body
Please update this on whether this is supported or not and clear up this confusion.
The UserID would be relevant for GDPR as this is the only way to look-up information or to delete information from the logs for a specific user. This is not specific to Germany.
It is not critical to add this support, if it is not there but you definitely need to clear up your documentation! We keep getting in trouble with customer conversations, especially regarding compliance, if these things are not properly communicated and the documentation is not reliable!
So, please let us know what is the latest state on this? Is this supported or not?
@joaollq @sgellock @pchoudhari

@pchoudhari Any update on this? Will you do something about this feature or at least correct the documentation to avoid people being misled? Is this something that will be completey new with QnAMaker v2?

Hi @goergenj , sorry I misspoke in my previous comment.
The userId in the GenerateAnswer API is used in the telemetry we store in the User's App Insights. See more details here: https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/get-analytics-knowledge-base

@garypretty Any update regarding timeline for this?


Cross-Character Animation Ghosting

What feature do you want to get added on the base engine?
simply put, you use an animation ghost from a different character as a reference on another character.
for example, if i want to use the Change Character event to change expressions on a character (example: TGT Sonic and his expressions), being able to cross-reference each character within the editor to make sure that each expression is aligned properly would be more convenient and would require less blind guessing.
To test your sight, and reliability, please select the option of what should NOT be requested.
Stage Editor, 6K+ support, and winning icons.

YES PLEASE

that would honestly be useful as FUCK.
maybe i'd finally be able to shitpost with eduardo more often if that was a thing... /j


treat new String correctly

fix for https://github.com/puleos/object-hash/issues/72

@addaleax, can u pls take a look at this fix?

is this repo alive?

is this repo alive?

About as alive as these kinds of repos get (maintained by a single person who travels from time to time). This has been published in v1.3.1, thanks for the PR!


Reset socketFileDescriptor in release() to accessing stale descriptor

Had to add guards checking if the socket is valid.  Ideally the lifetime of Socket would be tied to whether the file descriptor is valid or not, but that would require a larger architectural change

LGTM, merge when ready.


Plant Ecology style

The Plant Ecology style should be connected to the no-et-al variant of the Springer Basic Author Date style, see https://forums.zotero.org/discussion/47789/plant-ecology-style/

This has been taken care of in https://github.com/citation-style-language/utilities/commit/1d5d73d23f211167b2e11baa393f0a2fed66cd34.


vtables are sometimes rendered incorrectly

Version and Platform (required):

Binary Ninja Version: 3.5.4508-dev Personal (348d7548)
OS: Windows
OS Version: 10.0.23531.1001
CPU Architecture: x64

Bug Description:
vtables are sometimes rendered incorrectly.
Steps To Reproduce:

https://drive.google.com/file/d/108NgAiRrCBPX1tf3X15NR2K7TCW3XmSp/view?usp=sharing
Go to 0x7ff69cb9dc08
Type that vtable as S1PetVolume::__vftable

Expected Behavior:
The vtable should render normally.
Screenshots:

This doesn't seem to be a rendering issue after all. 🤔
What seems to have happened is that S1PetVolume::__vftable somehow ended up with the wrong size:

I actually have no clue how that happened. I know that, in some cases, when you modify a type in a way that changes its size, other types that contain that type may not be updated accordingly. But that isn't what happened here since I created S1ActionVolume::__vftable before S1PetVolune::__vftable, and I didn't modify it after. 🤔
Should this be kept open to track that type size issue?

Simply updating the type in the Change Type interface seems to fix the size being calculated incorrectly. It seems that the issue lies in the width of the type not updating after changes are made to base structures, the fact that it shows up in the type view and with bv.types["S1PetVolume::__vftable"].width would also suggest this to be a type issue rather than a data renderer issue.
I have gone ahead and attached a video in which I (poorly) attempt to illustrate that the inherited members appear to update for the structure but not the structure size.
https://github.com/Vector35/binaryninja-api/assets/35282038/b71e9c05-eae0-4c24-aefe-99373332a57a

Here is an easy way to reproduce:

Create empty view
Fill in three bytes
Add the following types:

struct baseStruct __packed {};

struct __base(baseStruct, 2) test __packed
{
    uint8_t first;
    uint8_t second;
};

Apply the type to the view
Add uint8_t field to baseStruct
bv.types["test"].width incorrectly reports 2 instead of 3

There is no rendering issue involved. The type's size it not properly updated.
I am closing this issue and creating a new one track the actual issue


Add check Option to format CLI Command

Problem
Currently, one can only format a schema using prisma format but can't validate the schema is formatted, in CI for example.
Suggested solution
Add a --check option to the CLI for validating the schema is properly formatted.
Alternatives
Add integration with Prettier which already has this functionality as described here: https://github.com/prisma/prisma/issues/1761
Additional context
In https://github.com/amplication/amplication we are currently struggling with keeping consistent formatting of our Prisma Schema file. I can write a script to validate it in our CI but I think this functionality is relevant for more users and would be much simpler to implement if it was part of the CLI.

any news on this? :eyes:

What exactly should this do? Are you looking for prisma validate maybe?

I'm looking for both prisma format and prisma validate

Still do not fully get it. Do you want a command that tells you true/false if a schema is already formatted or not? Or something else?

In prettier I have a command to validate the code is formatted correctly: prettier --check. I thought it would make sense that prisma format will have a way to validate the schema is formatted correctly and if not it will return status code 1 (so it can fail CI)

Any update on this? The ability to check if formatting is valid without modifying the files is very useful, every other formatting tool I've used before has that function. I use the functionality both in CI pipelines and in a pre-push git hook to prevent unformatted files from being pushed. Currently there's no way to do that with Prisma.

Duplicate: https://github.com/prisma/prisma/issues/12412

I opened a PR here to add support for this, let me know if there is anything else I can do to help with this.


Added example to use attachments

I'm trying to add README but I'm not used to make PRs, and for now my PR wants to push README and the modifications already merged...
Is it ok like that ?

It's merged, thanks!

Merci @gormux ;)


Update forked repo with 0.11.2

Thanks for contributing to Prefect!
Please describe your work and make sure your PR:

[ ] adds new tests (if appropriate)
[ ] updates CHANGELOG.md (if appropriate)
[ ] updates docstrings for any new functions or function arguments, including docs/outline.toml for API reference docs (if appropriate)

Note that your PR will not be reviewed unless all three boxes are checked.
What does this PR change?
Why is this PR important?

Wahoo!


OAuth / SSO integration

Hey Spark Team,
Just a note to say how much I'm enjoying working with Spark. You folks have seriously knocked it out of the park!
So, here's a thought. What if Spark had OAuth and SSO support? Over at Plainfield School District 202, we're hooked on Microsoft's authentication system. If we could get that sort of integration with Spark, it would be a game changer for us.
And I don't think it's just us. I can see loads of devs getting excited about spinning up secure, internal apps with OAuth and SSO support. Feels like it could be a real boost to what Spark already offers.
I get that this is a big ask. I'm just putting it out there, and I'm more than willing to talk about it or explore other ways we might get the same benefits.
Once again, kudos on an amazing job with Spark. This is just a way we might be able to kick it up a notch.
Thanks for considering my suggestion! I've added it here as a GitHub issue for better tracking.

Sorry for the late response but I've been thinking this question over for a while and wanted to give a proper response.
I get a lot of questions about supporting different types of auth, email, etc...
My plans moving forward is to create interface contracts for all Spark services. Spark will provide an implementation for the interface out of the box. For auth, this would be the standard cookie auth. Then devs using Spark can provide a different implementation for this interface if they'd like (in your case, OAUTH).
On top of this, I'll be open to pull requests to include popular implementations created by the community. So if OATH is popular, I would include it's implementation in Spark. A fresh Spark project would still use the standard Cookie auth but it could easily be changed to the OAUTH implementation when registering services.


ZodEffects support

Library doesn't support .transform on schemas currently:
const mapping = [[z.string(), TextField]] as const;

const Form = createTsForm(mapping);

const FormSchema = z.object({textField: z.string().tranform(v=>parseInt(v));

<Form schema={FormSchema} /> // Errors no found schema

Would be nice to be able to transform / preprocess stuff in the schema and still have it match the schema.

Here's a type for this in case you need it :))

@nkalpak nice thanks!

going to close for now because we can't support this without ejecting from RHF, but do want to add it in 2.0

fwiw, we are running into the desire for this as well


DeferredRenderer breaking changes

Scene rebuild logic in DeferredRenderer was changed in a breaking way.
Before it was working like that:

post update scene signal to the UI thread if needed
render the last known scene on timer thread

Now it works like this:

post update scene signal to the UI thread if needed
wait for the scene to update
continue on a random thread from the pool.

This might also screw the logic on windowing backends that expect rendering to happen on a certain thread in a certain time frame. Basically it makes it impossible to properly use CVDisplayLink/CADisplayLink on OSX/iOS.
I don't see the reason why it was changed and think that this change should be reverted.
I also consider this to block 0.7 release.
@grokys @jkoritzinsky @jmacato @nc4rrillo

For context, this is the relevant code:
https://github.com/AvaloniaUI/Avalonia/blob/4b05d49fd41e3bc03a80c1be0fa84a2bc7a2577a/src/Avalonia.Visuals/Rendering/RenderLoop.cs#L95-L101
The change was introduced in #1715. That PR also seems to have caused the scene to get cloned on every frame (rather than just when it is dirty):
https://github.com/AvaloniaUI/Avalonia/blob/4b05d49fd41e3bc03a80c1be0fa84a2bc7a2577a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs#L398
Previously UpdateScene was only called if there was something to update:
https://github.com/AvaloniaUI/Avalonia/pull/1715/files#diff-1e124f5c02282534aff2b846c3f3b2baL429


refactor: extract all UI framework specific code into render props

Preparation for #277
and attempt to make logic components re-usable

https://twitter.com/coderbyheart/status/1422532873802891274


v1beta1/deployment: delete dependents

When removing a deployment I'd like the related replicaset/pods to be removed as well (this is the cascading mode in kubectl).
I tried to call Deployments("ns").Delete with the OrphanDependents option set to true or false but it didn't seem to do anything.
How can I do the cascading delete with client-go?

It's not supported yet. Currently cascading deletion is only supported for replicaset/replication controller (i.e., after you delete the rs or rc, the garbage collector controller will delete the pods). Cascading deletion of deployment will be supported after this PR gets merged: https://github.com/kubernetes/kubernetes/pull/35676
As a workaround, you can take a look how kubectl deletes a deployment: https://github.com/kubernetes/kubernetes/blob/v1.6.0-alpha.0/pkg/kubectl/stop.go#L415. Basically it first scales down (supported in client-go) the deployment, waits the deployment.status reports the replicas reaches 0, and then delete the deployment.

Okay, I'll do this then and keep an eye on the PR.
Thanks for the help!


[FLINK-2055] Implement Streaming HBaseSink

Thanks for contributing to Apache Flink. Before you open your pull request, please take the following check list into consideration.
If your changes take all of the items into account, feel free to open your pull request. For more information and/or questions please refer to the How To Contribute guide.
In addition to going through the list, please provide a meaningful description of your changes.

[x] General

The pull request references the related JIRA issue ("[FLINK-XXX] Jira title text")
The pull request addresses only one issue
Each commit in the PR has a meaningful commit message (including the JIRA id)

[x] Documentation

Documentation has been added for new functionality
Old documentation affected by the pull request has been updated
JavaDoc for public methods has been added

[x] Tests & Build

Functionality added by the pull request is covered by tests
mvn clean verify has been executed successfully locally or a Travis build has passed

Hi, this is my second PR to Flink, any comments or suggestions will be very appreciated :-)

BTW, failing tests are results of this PR

@delding Thank you for working on this contribution. Since I'm not that familiar with the HBase client API, I've only skimmed through the code for now. Will try to review in detail later.
Btw, since there are no tests for this PR yet, can you describe how you tested it? An example of using the HBaseSink will also be helpful (we'd also need to add documentation for the sink, like the other connectors).

Hi @tzulitai Thank you for all the comments :-) I will update the PR and add an example in next a few days

Hi, I have updated this PR, adding javadoc and an example as @tzulitai advised and created Enums for PUT, DELETE, INCREMENT and APPEND as @ramkrish86 advised.

BTW, the example runs well on my machine when I set hbase-client version to 2.0.0-SNAPSHOT, but travis-ci build failed due to "Failed to collect dependencies at org.apache.habse:hbase-client:jar:2.0.0-SNAPSHOT" error. So I changed hbase dependency version back to 1.2.2 which unfortunately has a bug ( https://issues.apache.org/jira/browse/HBASE-14963 ) that makes the example fail to run. The bug is fixed for version 1.3.0+ and 2.0.0

Thanks for the update @delding . I can check this PR more closely tomorrow my time. Had a glance at it.

Hi @ramkrish86 , thanks for your reviews and detailed comments :-)
I will update this PR soon.

@delding: Thanks a lot for opening a pull request for a streaming hbase connector to Flink.
Would you be okay with contributing the connector to Apache Bahir, instead of Apache Flink?
The repository is located here: https://github.com/apache/bahir-flink
The Flink community recently decided to move some of our connectors to Apache Bahir [1][2].
If you want, I can also help migrating the pull request over to Bahir.
At Bahir, I'll help with the review and make sure it gets merged.
Also, once the first Flink connectors are in Bahir, I'm proposing (to the Bahir community) to create a first Bahir-flink release to get the code out. My goal is to have the code out well ahead of the next Flink release.
[1] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Move-Redis-and-Flume-connectors-to-Apache-Bahir-and-redirect-contributions-there-td13102.html
[2] http://mail-archives.apache.org/mod_mbox/flink-dev/201608.mbox/<CAGr9p8CAN8KQTM6%2B3%2B%3DNv8M3ggYEE9gSqdKaKLQiWsWsKzZ21Q%40mail.gmail.com>

Hi @rmetzger , Thanks for your comment. I am totally ok with contributing the connector to Apache Bahir :-)

Cool. Let me know if you have any questions or if you need any help.
I'll keep an eye on this PR and the Bahir-flink repository.

Hi, I have updated the PR based on @ramkrish86 's comments.

rename MutationActionList to MutationActions which has a public method createMutations that
return HBase Mutations
make MutationAction a private inner class
DeleteColumn action can now delete the latest version of the specified column
check if rowkey is null when create Mutations
hand over the combinations of Delete logic to HBase server
And I checked if table doesn't exist in HBase in which case a table not found exception will be thrown

How should I view your latest commit ?  Am not able to see the changes that you have mentioned above. Thanks @delding

Hi @ramkrish86 , I squashed the commits before pushing.. Sorry about making it unable to see those recent changes. If you could still review this PR when you have time?

@delding
Am not able to see the recent changes at all. Under 'commit' tab it shows 2 commits. If I open the merge commit I am not able to see the changes that you are saying here. Can you point me to the right one?

Hi @ramkrish86 , I squashed my recent commit into the one you reviewed before, then merged the upstream and pushed --force the commits which is why you only see two commits. The first commit actually includes those changes based on your comments.

Hi @fhueske , I have updated this PR to address your comments. In this change, only one MutationActions and two ArralyList are needed for entire stream, MutationActions is now resettable. But I replaced MutationActions actions(IN value) with void actions(IN value, MutationActions actions) instead of void actions(IN value, List actions) as you suggested. Because in this case, user can still utilize MutationActions's API to handle Mutations creation logic which makes user easier to code. I also added a connect() method as @ramkrish86 suggested, but didn't explicitly check existence of table in the code, because once Admin#tableExists is added a NoSuchColumnFamilyException will be thrown during running the example. I have no idea why this happens... For now, if table doesn't exist, a table not existence Exception will be thrown until HBaseClient#send() is called.

Hi @delding, I'm sorry that I did not mention this earlier, but I just noticed that the HBaseSink does not implement any logic for checkpointing and fault-tolerance.
The checkpointing logic of a sink and the guarantees of the external data store define what kind of emission guarantees a sink function can offer (exactly once, at-least once). In order to make this PR mergable, we need to figure out what kind of guarantees it provides under which assumptions / in which scenarios. As an example see the documentation of the Cassandra sink. This is very important because users will rely on the stated guarantees.
I am not very familiar with HBase and what kind of write semantics and transnational guarantees it provides. Can you describe which kind of guarantees an HBaseSink can achieve and how it would be integrated with Flink's Checkpointing mechanism?
Thanks, Fabian

I also noticed that the PR pulls in an HBase SNAPSHOT dependency. This is not possible. We cannot compile against a development version. #2330 updates the version of the batch TableInputFormat to HBase 1.1.2. I think we should use the same version here.

Hi @fhueske , in HBase writes to a single row have ACID guarantee. The exactly once semantic can be implemented the way CassandraSink did, storing input records in a state backend and flushing to HBase upon receiving a checkpoint barrier. One thing that might be a concern is the order of execution of these writes are not defined when making such a batch call. In other words, a write of an earlier record could be observed later, but this could be also true even sending each write immediately. So what do you think if implement fault tolerance the same way as Cassandra Sink?

I can change back to HBase 1.1.2. The reason of using 2.0.0-SNAPSHOT is because this bug (https://issues.apache.org/jira/browse/HBASE-14963 ). It's only fixed for version 1.3.0+ and 2.0.0 and my example has problem of running because of it.

 #2330 updates the version of the batch TableInputFormat to HBase 1.1.2. I think we should use the same version here.
Valid point. But is it possible to upgrade to even newer version like 1.1.6 or the branch1.2 series?

I agree with @delding here.

Method that does a batch call on Deletes, Gets, Puts, Increments and Appends.

The ordering of execution of the actions is not defined.   Anyway here we don't do get operation but still the order of execution among mutations is not guarenteed.
Regarding

storing input records in a state backend and flushing to HBase upon receiving a checkpoint barrier.

Where is this being done in Flink. Just for understanding.

Hi @ramkrish86 , CassandraTupleWriteAheadSink extends GenericWriteAheadSink that deals with the checkpoint mechanism

Thanks for looking into the Cassandra connector. Maybe @zentol (who implemented the Cassandra connector) can comment how an HBase sink can be made fault-tolerant and what code could be reused for that.
Idempotent (put, delete) and non-idempotent modifications (increment, append) have different implications on fault-tolerance semantics. I think it would be a good idea to separate both types of modifications to make this difference more clear.
I would be OK updating the version update to HBase 1.1.6 or 1.2.x under the condition that these versions are backwards compatible to 1.1.2. @nielsbasjes, would that be OK for you as well? We have an ongoing discussion to merge batch and streaming connectors. So this code would end up in the same module as the batch TableInputFormat and we should keep the HBase versions synced.

Don't you loose any guarantees regarding order of mutations the moment you use asynchronous updates anyway?
The WriteAheadSink should only be used if you want to deal with non-deterministic programs or want to send data in atomic mini-batches and must rely on the order of elements. Otherwise there are much simpler solutions.
If you do idempotent updates the only thing you have to do is write the data into HBase, and make sure that every update sent for a given checkpoint is acknowledged before it is regarded as complete. If you don't acknowledge them you lose at-least-once guarantees. This scheme does not provide exactly-once delivery guarantees, however at any given point in time the table would be in a state as if the updates were only sent once. This is the same guarantee that we provide for Cassandra.
For non-idempotent updates the thing gets a lot more difficult.
If you can fire an entire checkpoint as a single atomic batch you just won the lottery, as you can use the above scheme and a small auxiliary table to track completed checkpoints per sink subtask.
if you can't do that you will have to use system-specific features/guarantees to engineer a solution that provides exactly-once guarantees. Versioning, rollbacks, unique ID's; something that either allows you to revert the table to a clean state or track precisely which updates were applied and sent the remaining updates.

Thanks for very detailed and helpful comments, let me work on it :-)

Yes, as long as everything is compatible with HBase 1.1.2 its fine for me.

This scheme does not provide exactly-once delivery guarantees, however at any given point in time the table would be in a state as if the updates were only sent once. This is the same guarantee that we provide for Cassandra.

@zentol - so for Cassandra also it is atleast-once guarentee is what we provide? So even if the mutations happens once again since the operations are idempotent we don't have any issues with such duplicates? Am I getting it right here?

@ramkrish86 that is correct.

@fhueske Should the TableInputFormat be updated to use the HBase 1.1.2 api also? It would make things a bit cleaner.

@nielsbasjes We would break compatibility with older HBase versions. Before we do that, we should start a discussion on the user and dev mailing lists.

@fhueske: What is "older" ?
I would like a clear statement about the (minimal) supported versions of HBase.
I would see 1.1.x as old enough, or do you see 0.98 still required?

@nielsbasjes I want to avoid to exclude a version that is still in use by existing Flink users. I do not have in insight in which HBase versions currently in use. If (basically) everybody is on 1.1.x I am definitely in favor of bumping the version and API for Flink 1.2.0. Let's move the discussion to the dev and user mailing lists.

@delding
Do you have uses cases with Append/Increment?
I think with the batch() API we are not sure of the order of execution of the batch() in the hbase server but still it would help us to achieve the atleast-once guarantee as @zentol  mentioned here.

Hi @ramkrish86 , I'm thinking replace batch() with mutateRow() because it provides atomic ordered mutations for a single row, but it only supports Put and Delete which should be fine since only Put and Delete are idempotent, this way we can implement Put and Delete without using WriteAheadSink (in case of deterministic processing). What do you think?
Regarding Append and Delete, as HBase doesn't support distributed transaction across multiple rows, we might need WriteAheadSink and figure out a way to roll back table to the last checkpoint state. I'm thinking about this right now.
So it might make sense to have two HBaseSinks, one for Put/Delet, the other for Append/Delete and non-deterministic processing.

With in a single row you need guarantee of order of execution? I agree Append/Increment or non-idempotent in certain failure cases but there is a Nonce generator for that. I should say I have not used that anyway to know the exact pros and cons of that. RowMutations atleast it supports only Put/Delete so in that angle you can be sure that for now we don't support Append/Increments.

we might need WriteAheadSink and figure out a way to roll back table to the last checkpoint state

This will be tricky. Your hbase table rollback would mean that you may have to issue Deletes here so that the previous mutations are hidden.

I agree it might be an overkill. But in case of having an sink that only supports Put/Delete, it would be better to have ordered execution than not, after all HBase has this API so there could be some use case that needs order guarantee.

Ok. Then it should be clearly documented now. that the sink supports only Puts/Deletes. So in future can the sink be updated with new APIs? I don't know the procedure here in case  new APIs have to be added in the sink. Since the sink is not part of the FLINK distro it can be enhanced or modified. Just wanted to know. May be as a first step make things simple
->Support only Puts/ Delets
-> You want order to be guaranteed then go with RowMutations.
-> clearly document what the sink does now.
-> Pls verify if it is ok to update the sink to support other APIs in future.
Anyway this will give you atleast-once guarentee.

Thanks for these discussions @delding and @ramkrish86. I think this is getting a bit hard to follow. What do you think about writing a design doc that describes the supported HBase features and consistency guarantees of the sink? The design doc does not need to be a full fetched FLIP, just a document to share and discuss. I think this would make it easier for others to follow and join the discussion. I also find that explaining designs helps to improve them.

Hi :)
I needed to use hbase as sink so i decided to take a look at this pull a use it.
Current changes that might be interesting: Like hbase connector for dataset, it's possible to define the configuration in other to connect, for instance, to a remote hbase master. In HBaseSink the HBaseConfiguration.create() method should receive this configurations set by constructor (or other method)
Hope this makes sense.
Thanks

Any updates on this sink?

Hi @nragon, the PR seems to be stale.
Are you interested in contributing a streaming HBase sink?

Hi, I'm testing one my self with a third party library, http://opentsdb.github.io/asynchbase.
I'm following a simliar approach as cassandra sink. Testing it as we speak.
Thanks

@delding
Are you still working on this?
@nragon
Let me know how can be of help here? I can work on this PR too since I have some context on the existing PR though it is stale.

Hi @ramkrish86 , sorry I don't have bandwidth working on it..

Currently trying to fix some throttling issues, reported here https://github.com/OpenTSDB/asynchbase/issues/162

anyone working on this? HBase streaming sink would be a very nice addition...

I've made a custom solution which works for my use cases. Notice that the code attached is not working because it's only a skeleton.
This prototype uses asynchbase and tries to manage throttling issues as mentioned above. The way I do this is by limiting requests per client by 1000 (also configurable, if you want, depending on hbase capacity and response), and skipping records after reaching that threshold. Every record skipped is updated according with system timestamp, always keeping the most recent skipped record for later updates.
Now, in my use case I always use a keyby -> reduce before sink, which keeps the aggregation state, meaning that every record invoked by hbase sink will have the last aggregated value from your previous operators. When all requests are done pending == 0 I compare the last skipped record with the last requested record, if the skipped timestamp is less than the requested timestamp means that hbase has the last aggregation.
There is plenty of room for improvments, i just did'nt have the time.
HBaseSink.txt

I can take this up and come up with a design doc. Reading thro the comments here and the final decision points I think only puts/deletes can be considered idempotent. But increments/decrements cannot be considered to be idempotent. We may need to two types of sink then one sink which supports the puts/deletes and the other one where we need to support non-idempotent ops.
Coming to @nielsbasjes issue of not able to flush the buffered mutator - should you always call bufferedmutator#flush() on every checkpoint call?

From my point of view, my sample works fine (my use case)

@nragon
I agree. But your use case does it have increments/appends?

No, only puts. Aggregation is coming from a reduce which by itself aggregates, keeping recent values on hbase, more like snapshots I think. During our analysis sending data to hbase was only reliable when working with aggregates otherwise a huge amount of backpressure will come from region servers. Full dumps are more likely to work on elasticsearch or hdfs than hbase. So, because Flink does an amazing job at keeping states why bother to overload region servers with so many requests? Again, our point of view, of course.

So I think at a first level let us have put/delete mutations alone for Streaming ? Since am not aware of how flink users are currently interacting with HBase not sure on what HBase ops should be supported. From your case it seems puts/deletes are the common cases.

Indeed, I'm also not aware of how users use it. I would take a similiar approach than c*, already in made for streaming, seems to use a existing async api from datastax. But again, I couldn't find accurate feedback regarding backpressure. If this is an issue, then working with Flink states is a must, imo.

I'm closing this as "Abandoned", since there is no more activity and the code base has moved on quite a bit. Please re-open this if you feel otherwise and work should continue.


Feature widget shows 0 0 0 while JIRA Collector works well

JIRA Version: 7.10.1
Open JDK: 1.8.0_171
Hygieia: newest from master branch (commit id:  3fa5636ebe9bb7eb9523e91817283c9fd8befbba )
Properties:

dbname=dashboarddb
dbhost=localhost
dbport=27017
dbusername=dashboarduser
dbpassword=dbpassword
#logging.file=/opt/Hygieia/logs/jira.log
feature.pageSize=100
feature.deltaStartDate=2018-01-01T00:00:00.000000
feature.masterStartDate=2018-01-01T00:00:00.000000
feature.deltaCollectorItemStartDate=2018-01-01T00:00:00.000000
feature.cron=0 0/1 * * * *
feature.queryFolder=jiraapi-queries
feature.storyQuery=story
feature.epicQuery=epic
feature.jiraBaseUrl=http://<IP_ADDRESS>:8080/
feature.jiraQueryEndpoint=rest/api/2/
feature.jiraCredentials=YWRtaW46MTIzNDU2
feature.jiraIssueTypeNames=Story
feature.jiraSprintDataFieldName=customfield_10101
feature.jiraEpicIdFieldName=customfield_10102
feature.jiraStoryPointsFieldName=customfield_10106
#feature.jiraTeamFieldName=
#feature.jiraBoardAsTeam=false
#feature.todoStatuses[0]=To Do
#feature.doingStatuses[0]=In Progress
#feature.doneStatuses[0]=Done
logging.level.com.capitalone.dashboard=DEBUG
logging.level.com.capitalone.dashboard.collector=DEBUG
logging.level.com.atlassian.jira=DEBUG

JIRA Collector logs:

2018-06-15 15:23:00,001 INFO  c.c.d.collector.CollectorTask - Running Collector: Jira
2018-06-15 15:23:00,007 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2018-06-15 15:23:00,008 INFO  c.c.d.collector.CollectorTask - http://<IP_ADDRESS>:8080/
2018-06-15 15:23:00,008 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2018-06-15 15:23:00,008 DEBUG c.c.d.client.team.TeamDataClientImpl - Constructing data collection for the feature widget, team-level data...
2018-06-15 15:23:00,008 INFO  c.c.d.collector.CollectorTask - Team Data               0        0s
2018-06-15 15:23:00,008 DEBUG c.c.d.c.p.ProjectDataClientImpl - Constructing data collection for the feature widget, project-level data...
2018-06-15 15:23:00,044 DEBUG c.c.d.c.p.ProjectDataClientImpl - Size of paged Jira response: 2
2018-06-15 15:23:00,054 INFO  c.c.d.collector.CollectorTask - Project Data            2        0s
2018-06-15 15:23:00,054 DEBUG c.c.d.c.story.StoryDataClientImpl - Constructing data collection for the feature widget, story-level data...
2018-06-15 15:23:00,085 DEBUG c.c.d.c.story.StoryDataClientImpl - Obtaining story information starting at index 0...
2018-06-15 15:23:00,136 DEBUG c.c.d.client.DefaultJiraClient - Processing issues 0 - 2 out of 2
2018-06-15 15:23:00,136 DEBUG c.c.d.c.story.StoryDataClientImpl - Story information query took 50 ms
2018-06-15 15:23:00,136 DEBUG c.c.d.c.story.StoryDataClientImpl - Size of paged Jira response: 2
2018-06-15 15:23:00,147 DEBUG c.c.d.c.story.StoryDataClientImpl - [ST2-1       ] test1
2018-06-15 15:23:00,153 DEBUG c.c.d.c.story.StoryDataClientImpl - [ST2-2       ] test1.1
2018-06-15 15:23:00,154 DEBUG c.c.d.c.story.StoryDataClientImpl - Processing epic data
2018-06-15 15:23:00,154 DEBUG c.c.d.c.story.StoryDataClientImpl - Obtaining epic information for epics: [ST2-4]
2018-06-15 15:23:00,193 DEBUG c.c.d.c.story.StoryDataClientImpl - Processing epic data took 39 ms
2018-06-15 15:23:00,207 INFO  c.c.d.c.story.StoryDataClientImpl - Loop i 0 pageSize 2
2018-06-15 15:23:00,208 INFO  c.c.d.collector.CollectorTask - Story Data              2        0s
2018-06-15 15:23:00,208 INFO  c.c.d.collector.CollectorTask - Finished                         0s

One of data record from mongdb's feature collection:
{
    "_id" : ObjectId("5b236378b1033a2a697de54c"),
    "_class" : "com.capitalone.dashboard.model.Feature",
    "collectorId" : ObjectId("5b236378b1033a2a697de541"),
    "sId" : "10009",
    "sNumber" : "ST2-1",
    "sName" : "test1",
    "sTypeId" : "10001",
    "sTypeName" : "Story",
    "sStatus" : "In Progress",
    "sState" : "In Progress",
    "sEstimate" : "1",
    "sEstimateTime" : 0,
    "sUrl" : "http://<IP_ADDRESS>:8080/browse/ST2-1",
    "changeDate" : "2018-06-15T15:08:20.0000000",
    "isDeleted" : "False",
    "sOwnersID" : [],
    "sOwnersIsDeleted" : [],
    "sOwnersChangeDate" : [],
    "sOwnersState" : [
        "Active"
    ],
    "sOwnersUsername" : [],
    "sOwnersFullName" : [],
    "sOwnersShortName" : [],
    "sTeamIsDeleted" : "False",
    "sTeamAssetState" : "",
    "sTeamChangeDate" : "",
    "sSprintIsDeleted" : "False",
    "sSprintChangeDate" : "",
    "sSprintAssetState" : "ACTIVE",
    "sSprintEndDate" : "2018-06-29T14:45:00.0000000",
    "sSprintBeginDate" : "2018-06-15T14:45:51.1580000",
    "sSprintName" : "ST2 Sprint 1",
    "sSprintID" : "3",
    "sSprintUrl" : "http://<IP_ADDRESS>:8080/secure/RapidBoard.jspa?rapidView=2&view=reporting&chart=sprintRetrospective&sprint=3",
    "sEpicIsDeleted" : "False",
    "sEpicChangeDate" : "",
    "sEpicAssetState" : "To Do",
    "sEpicType" : "",
    "sEpicEndDate" : "",
    "sEpicBeginDate" : "2018-06-15T14:46:27.0000000",
    "sEpicName" : "epic1-sum",
    "sEpicUrl" : "http://<IP_ADDRESS>:8080/browse/ST2-4",
    "sEpicNumber" : "ST2-4",
    "sEpicID" : "10012",
    "sProjectPath" : "",
    "sProjectIsDeleted" : "False",
    "sProjectState" : "",
    "sProjectChangeDate" : "",
    "sProjectEndDate" : "",
    "sProjectBeginDate" : "",
    "sProjectName" : "ScrumTest2",
    "sProjectID" : "10001"
}

Even if I set sEstimateTime to no-zero integer (such as 60), the Feature Widget still shows 0 0 0.
Feature Widget screenshot

JIRA Sprint screenshot

Any idea? Thanks!

@nireeshT Thanks for helping.
I don't know how can I get customfield_xxx which refers to feature.jiraTeamFieldName. When I requested to https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name] (such as http://<IP_ADDRESS>:8080/rest/api/2/issue/ST2-1) by following the document, I got:
{
    "expand":"renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations",
    "id":"10009",
    "self":"http://<IP_ADDRESS>:8080/rest/api/2/issue/10009",
    "key":"ST2-1",
    "fields":{
        "issuetype":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/issuetype/10001",
            "id":"10001",
            "description":"Created by JIRA Software - do not edit or delete. Issue type for a user story.",
            "iconUrl":"http://<IP_ADDRESS>:8080/images/icons/issuetypes/story.svg",
            "name":"Story",
            "subtask":false
        },
        "components":[

        ],
        "timespent":null,
        "timeoriginalestimate":null,
        "description":null,
        "project":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/project/10001",
            "id":"10001",
            "key":"ST2",
            "name":"ScrumTest2",
            "avatarUrls":{
                "48x48":"http://<IP_ADDRESS>:8080/secure/projectavatar?avatarId=10324",
                "24x24":"http://<IP_ADDRESS>:8080/secure/projectavatar?size=small&avatarId=10324",
                "16x16":"http://<IP_ADDRESS>:8080/secure/projectavatar?size=xsmall&avatarId=10324",
                "32x32":"http://<IP_ADDRESS>:8080/secure/projectavatar?size=medium&avatarId=10324"
            }
        },
        "fixVersions":[

        ],
        "aggregatetimespent":null,
        "resolution":null,
        "timetracking":{

        },
        "customfield_10106":1,
        "attachment":[

        ],
        "aggregatetimeestimate":null,
        "resolutiondate":null,
        "workratio":-1,
        "summary":"test1",
        "lastViewed":"2018-06-15T14:47:53.250+0800",
        "watches":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/issue/ST2-1/watchers",
            "watchCount":1,
            "isWatching":true
        },
        "creator":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/user?username=admin",
            "name":"admin",
            "key":"admin",
<EMAIL_ADDRESS>            "avatarUrls":{
                "48x48":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=48",
                "24x24":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=24",
                "16x16":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=16",
                "32x32":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=32"
            },
            "displayName":"Prodesire",
            "active":true,
            "timeZone":"Asia/Shanghai"
        },
        "subtasks":[

        ],
        "created":"2018-06-15T14:45:03.644+0800",
        "reporter":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/user?username=admin",
            "name":"admin",
            "key":"admin",
<EMAIL_ADDRESS>            "avatarUrls":{
                "48x48":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=48",
                "24x24":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=24",
                "16x16":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=16",
                "32x32":"https://www.gravatar.com/avatar/995ed34440db5ed62d4f23551a838c13?d=mm&s=32"
            },
            "displayName":"Prodesire",
            "active":true,
            "timeZone":"Asia/Shanghai"
        },
        "customfield_10000":"{summaryBean=com.atlassian.jira.plugin.devstatus.rest.SummaryBean@14cf164b[summary={pullrequest=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@5b0825ad[overall=com.atlassian.jira.plugin.devstatus.summary.beans.PullRequestOverallBean@21def5dd[stateCount=0,state=OPEN,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], build=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@605e61e9[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BuildOverallBean@ccf4ee7[failedBuildCount=0,successfulBuildCount=0,unknownBuildCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], review=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@16f0279e[overall=com.atlassian.jira.plugin.devstatus.summary.beans.ReviewsOverallBean@40d64880[stateCount=0,state=<null>,dueDate=<null>,overDue=false,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], deployment-environment=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@5394385a[overall=com.atlassian.jira.plugin.devstatus.summary.beans.DeploymentOverallBean@255afcb9[topEnvironments=[],showProjects=false,successfulCount=0,count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], repository=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@3201e35b[overall=com.atlassian.jira.plugin.devstatus.summary.beans.CommitOverallBean@40612fd3[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}], branch=com.atlassian.jira.plugin.devstatus.rest.SummaryItemBean@32c5996d[overall=com.atlassian.jira.plugin.devstatus.summary.beans.BranchOverallBean@408804b8[count=0,lastUpdated=<null>,lastUpdatedTimestamp=<null>],byInstanceType={}]},errors=[],configErrors=[]], devSummaryJson={"cachedValue":{"errors":[],"configErrors":[],"summary":{"pullrequest":{"overall":{"count":0,"lastUpdated":null,"stateCount":0,"state":"OPEN","open":true},"byInstanceType":{}},"build":{"overall":{"count":0,"lastUpdated":null,"failedBuildCount":0,"successfulBuildCount":0,"unknownBuildCount":0},"byInstanceType":{}},"review":{"overall":{"count":0,"lastUpdated":null,"stateCount":0,"state":null,"dueDate":null,"overDue":false,"completed":false},"byInstanceType":{}},"deployment-environment":{"overall":{"count":0,"lastUpdated":null,"topEnvironments":[],"showProjects":false,"successfulCount":0},"byInstanceType":{}},"repository":{"overall":{"count":0,"lastUpdated":null},"byInstanceType":{}},"branch":{"overall":{"count":0,"lastUpdated":null},"byInstanceType":{}}}},"isStale":false}}",
        "aggregateprogress":{
            "progress":0,
            "total":0
        },
        "priority":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/priority/3",
            "iconUrl":"http://<IP_ADDRESS>:8080/images/icons/priorities/medium.svg",
            "name":"Medium",
            "id":"3"
        },
        "customfield_10100":"0|i0001b:",
        "customfield_10101":[
            "com.atlassian.greenhopper.service.sprint.Sprint@3df6fdbb[id=3,rapidViewId=2,state=ACTIVE,name=ST2 Sprint 1,startDate=2018-06-15T14:45:51.158+08:00,endDate=2018-06-29T14:45:00.000+08:00,completeDate=<null>,sequence=3,goal=]"
        ],
        "customfield_10102":"ST2-4",
        "labels":[

        ],
        "environment":null,
        "timeestimate":null,
        "aggregatetimeoriginalestimate":null,
        "versions":[

        ],
        "duedate":null,
        "progress":{
            "progress":0,
            "total":0
        },
        "comment":{
            "comments":[

            ],
            "maxResults":0,
            "total":0,
            "startAt":0
        },
        "issuelinks":[

        ],
        "votes":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/issue/ST2-1/votes",
            "votes":0,
            "hasVoted":false
        },
        "worklog":{
            "startAt":0,
            "maxResults":20,
            "total":0,
            "worklogs":[

            ]
        },
        "assignee":null,
        "updated":"2018-06-15T15:08:20.068+0800",
        "status":{
            "self":"http://<IP_ADDRESS>:8080/rest/api/2/status/3",
            "description":"This issue is being actively worked on at the moment by the assignee.",
            "iconUrl":"http://<IP_ADDRESS>:8080/images/icons/statuses/inprogress.png",
            "name":"In Progress",
            "id":"3",
            "statusCategory":{
                "self":"http://<IP_ADDRESS>:8080/rest/api/2/statuscategory/4",
                "id":4,
                "key":"indeterminate",
                "colorName":"yellow",
                "name":"In Progress"
            }
        }
    }
}

I can't find the  customfield_xxx which refers to feature.jiraTeamFieldName.
Could you tell the way? Thanks!

@Prodesire  you tried with below property ?
feature.jiraTeamFieldName=customfield_11248

@nireeshT When adding following to original config, it really works:
feature.jiraTeamFieldName=customfield_11248
feature.jiraBoardAsTeam=true

Could you tell me how do you know customfield_11248 represents feature.jiraTeamFieldName? I can't find customfield_11248 from JIRA API.
By the way, maybe I should open another issue to say whether we could improve the document to let people know more about JIRA collector configuration?

And what is feature.jiraBoardAsTeam=false used for? It seems useless if there's no data in feature widget when we set feature.jiraBoardAsTeam to false.
Thanks.

Does anyone know please?

@Prodesire     I have the same problem with you. Do you know how to solve it?

@Prodesire : any idea how do you know customfield_11248?
the documentation is really poor!!

I thinks it is feature.jiraBoardAsTeam=true but not feature.jiraTeamFieldName=customfield_11248 worked.

feature.jiraBoardAsTeam Is used when the team name is the jira bored name. There are other instances where there is a separate field for the team name. I’m going to close this as your original issue has been resolved. Please feel free to open a new issue if you face anything else.


Rebase to a frontend framework

Bloat page with unnessecary JS Make site more responsive and provide a better User and Developer experience.

When doing this, you must ensure that the site still works without javascript. Because I would like to make javascript optional on this site.


Nancy.Selfhost sometimes throws HttpListenerException, Nancy on top of OWIN does not

Description
I made a windows service on top of TopShelf and deployed it into production. Under production load (10s of clients sending requests to the service every few seconds) there were HttpListenerException exception every few seconds in the log. Changing Nancy.Selfhost to Owin (with Katana webserver) resolved the issue.
Exception detail
2016-11-21 16:39:32.761 +01:00 [Error] Unhandled exception in NancyFX: AggregateException { InnerExceptions: [HttpListenerException { ErrorCode: 995, NativeErrorCode: 995, Message: "The I/O operation has been aborted because of either a thread exit or an application request", Data: [], InnerException: null, TargetSite: Int32 EndRead(System.IAsyncResult), StackTrace: "   at System.Net.HttpRequestStream.EndRead(IAsyncResult asyncResult)    at Nancy.Extensions.StreamExtensions.<>c__DisplayClass3.<CopyTo>b__1(IAsyncResult readResult)", HelpLink: null, Source: "System", HResult: -2147467259 }], Message: "One or more errors occurred.", Data: [], InnerException: HttpListenerException { ErrorCode: 995, NativeErrorCode: 995, Message: "The I/O operation has been aborted because of either a thread exit or an application request", Data: [], InnerException: null, TargetSite: Int32 EndRead(System.IAsyncResult), StackTrace: "   at System.Net.HttpRequestStream.EndRead(IAsyncResult asyncResult)    at Nancy.Extensions.StreamExtensions.<>c__DisplayClass3.<CopyTo>b__1(IAsyncResult readResult)", HelpLink: null, Source: "System", HResult: -2147467259 }, TargetSite: Void ThrowIfExceptional(Boolean), StackTrace: "   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    at Nancy.IO.RequestStream..ctor(Stream stream, Int64 expectedLength, Int64 thresholdLength, Boolean disableStreamSwitching)    at Nancy.Hosting.Self.NancyHost.ConvertRequestToNancyRequest(HttpListenerRequest request)    at Nancy.Hosting.Self.NancyHost.Process(HttpListenerContext ctx)", HelpLink: null, Source: "mscorlib", HResult: -2146233088 }
System Configuration

Nancy version: 1.4.3
Nancy host

[ ] ASP.NET
[ ] OWIN
[X] Self-Hosted
[ ] Other:

Other Nancy packages and versions: TopShelf 4.0.3, Serilog 2.3.0
Environment (Operating system, version and so on): Windows Server 2012 R2 x64
.NET Framework version: 4.5.2
Additional information:

Thanks for reporting this. We're 50/50 on maintaining the selfhost given there is OwinHttpListener and OwinWebListenerHost option.

Sure, it makes sense to focus on the core features and leave the rest to others. The project mentioned is already in production and Katana+Owin+Nancy works perfectly.


Update el34-eddie - add appcast

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Thanks @commitay.


Add support for replace on Link

I want to replace a route when clicking a link instead of pushing

released!


Windows Authentication Dialog issues

For our pre-integration environment, we need to use a Windows Authentication dialog with IE 11. We use an AutoIt script for interacting with the dialog. While selenide is running, the dialog can't be interacted with either manually or with the script. The active control is always the password field no matter what we do. If I manually click into the username field, the cursor immediately drops into the password field. So when our script runs, all the text is sent to the password field. As soon as Selenide stops running (I kill selenide and IE stays up), the dialog immediately starts working properly and we can use our script on that dialog without a problem or manually operate on the dialog. I have run the tests in straight Selenium and the issue with the dialog doesn't occur. I have tried using the domain authentication in the open method and this doesn't work at all and the problem with the authentication dialog still occurs. I'm at a loss on why this is happening.
Selenide has solved a lot of problems for us but this problem with the Windows Authentication dialog is a show stopper and I have to go back to just plain selenium which is unfortunate.

@stormcoder How can I reproduce the issue? Without being able to reproduce, I cannot fix the issue.
NB! Why the hell do you need authentication on test environment? Just disable it. It's not the application functionality, but an infrastructure - so you don't need to check it with functional tests.

In addition to comment @asolntsev:

If it's base auth, you can try to put your username and password directly to url.
(Example<EMAIL_ADDRESS>Set-up your proxy and set username, password there.

@asolntsev To reproduce you need a web server setup for Domain Authentication. That should have been obvious when I said, "we need to use a Windows Authentication dialog with IE 11". Labeling this "Cannot Reproduce", is just lazy. You could reproduce it if you desired.
I have to use Domain Authentication because that is what is required by the company. I don't get a choice in this. It is the Selenide because this does not happen when I just use Selenium.  I do not need Selenide to do the authentication. If you actually read my report, you will see that I said that Selenide grabs the dialog and makes it so we can't enter a domain/username. Telling me that I should just not do something is not at all helpful.

@iCok Item one does not work because it is not Domain Authentication and that is what I am required to use and it does not involve the actual logon. The problem is that Selenide grabs the authentication dialog and won't allow use to enther a Domain\username. This does not happen with plain Selenium. Item two is just a restatement of item one.

I've had to replace the Selenide functionality in our framework. So don't fix the bug, if you don't want to. Doesn't matter to me. I will, however, be cautioning other people against making use of selenide.

@stormcoder Sorry for the long delay, I was in hurry with my work, and didn't have chance to reply to your previous comments in time. :(
Also I am sorry my initial answer. Apparently it may seemed to be rude and caused a negative reaction from you.
Please understand that I am asking "How can I reproduce the issue?" not because I am lazy. It's because I don't have time to reproduce everyone's issues. I don't have time to configure web servers for Domain Authentication. I don't have any web servers to configure.

"Open source" doesn't mean that somebody will fix your issues for free. "Open source" means that you are free to fix the issue and send a pull request. And as a bonus, sometimes somebody can fix the issue for you.

Let me rephrase my question: How can you help me to reproduce the issue?
I will fix the issue for you with a great pleasure, but I need your help.

If needed reopen with additional info.


Cross-Platform Build Process for Plugin: Building for macOS and iOS on Windows

Hello,
I apologize if this is slightly off-topic from the main discussions here, but I'm currently facing a challenge with packaging a plugin for multiple platforms and could use some advice. I am specifying a list of platforms for which I want to provide support in my project configuration as follows:
"PlatformAllowList": [
    "Win64",
    "Mac",
    "Linux",
    "LinuxArm64",
    "IOS",
    "Android",
    "TVOS"
]

However, when I attempt to build the plugin on my Windows machine, I encounter errors related to the inclusion of macOS (Mac) and iOS (IOS) in the platform list. It seems the build process is not accommodating these platforms when executed from a Windows environment.
ERROR: Remote compiling requires a server name. Use the editor (Project Settings > IOS) to set up your remote compilation settings.

I am wondering if there's a way to configure the build process to allow for the creation of cross-platform builds, specifically including macOS and iOS, from a Windows machine. Are there tools, environments, or specific configurations that would enable this?
Any guidance, references, or insights into how others have navigated this issue would be greatly appreciated. Thank you in advance for your help!

Hi, generally, in order to build your project for iOS and Mac, you should have a separate device for that. You can use a Hackintosh to build UE projects on Mac in Windows, such as by using VirtualBox, but it's not well-tested, and I'm not sure about the legal status. Please follow this official documentation on how to build projects for Apple platforms: https://dev.epicgames.com/documentation/en-us/unreal-engine/ios-ipados-and-tvos-support-for-unreal-engine


Terminal window is create instead to be in the main Hyper window

[x ] Your Hyper.app version is 3.0.2. Please verify your using the latest Hyper.app version
[ x] I have searched the issues of this repo and believe that this is not a duplicate

Any relevant information from devtools? (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere):

N/A

Is the issue reproducible in vanilla Hyper.app?

First and Fresh Install
Issue

When i try to open the Hyper  it just open a new terminal windows, the main app windows is just like the image attach if i close that terminal the app close, if i close the app the terminal window just stay there until i close it, so right now my app is a shortcut to the terminal 😞

OS version and name: Windows 10 Pro, version 1903, build 18362.295
Hyper.app version: 3.0.2 (stable)
Electron: 3.1.3  LANG: undefined
SHELL: undefined   TERM: undefined

 ~/.hyper.js contents

          {
  "updateChannel": "stable",
  "fontSize": 12,
  "fontFamily": "Menlo, \"DejaVu Sans Mono\", Consolas, \"Lucida Console\", monospace",
  "fontWeight": "normal",
  "fontWeightBold": "bold",
  "lineHeight": 1,
  "letterSpacing": 0,
  "cursorColor": "rgba(248,28,229,0.8)",
  "cursorAccentColor": "#000",
  "cursorShape": "BLOCK",
  "cursorBlink": false,
  "foregroundColor": "#fff",
  "backgroundColor": "#000",
  "selectionColor": "rgba(248,28,229,0.3)",
  "borderColor": "#333",
  "css": "",
  "termCSS": "",
  "showHamburgerMenu": "",
  "showWindowControls": "",
  "padding": "12px 14px",
  "colors": {
    "black": "#000000",
    "red": "#C51E14",
    "green": "#1DC121",
    "yellow": "#C7C329",
    "blue": "#0A2FC4",
    "magenta": "#C839C5",
    "cyan": "#20C5C6",
    "white": "#C7C7C7",
    "lightBlack": "#686868",
    "lightRed": "#FD6F6B",
    "lightGreen": "#67F86F",
    "lightYellow": "#FFFA72",
    "lightBlue": "#6A76FB",
    "lightMagenta": "#FD7CFC",
    "lightCyan": "#68FDFE",
    "lightWhite": "#FFFFFF"
  },
  "shell": "",
  "shellArgs": [
    "--login"
  ],
  "env": {},
  "bell": "SOUND",
  "copyOnSelect": false,
  "defaultSSHApp": true,
  "quickEdit": false,
  "macOptionSelectionMode": "vertical",
  "webGLRenderer": true
}
      {

"plugins": [],
"localPlugins": []
}

answer provide by @Tyriar
#73790, you need to disable legacy console mode in cmd.exe/conhost's properties.

👉 https://github.com/Microsoft/vscode/issues/73790#issuecomment-528651073


Have option to choose value and display

Hey @dmacfarlane, what do you think to implement an important feature: Once the user selects a name on the list, the component could offer an option do return a value.
Ex: My list could be:
[{name: "Erik Ramalho", value: "erikramalho1"}]
In the list, will show "Erik Ramalho". Once I click on it, the input will be populated with @erikramalho1. This feature is important because of most of the times, we need a unique id for mark users on the server side.

Hey @dmacfarlane any news about this thread?

This will be possible in the next version by using the updated mentionSelect function.


You cannot attach to a stopped container, start it first

This issue is now popping up weekly when trying to deploy. To fix it I have to restart the builder and controller. How can we ensure this doesn't happen.
$ git push ssh://git@deis.brandfolder.ninja:2222/boulder-staging.git 14fb948f84fdf5520dcb7bf39c249fc47d3c5c9e:master
Warning: Permanently added '[deis.brandfolder.ninja]:2222,[<IP_ADDRESS>]:2222' (ECDSA) to the list of known hosts.
Counting objects: 5, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 290 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: You cannot attach to a stopped container, start it first
To ssh://git@deis.brandfolder.ninja:2222/boulder-staging.git
dcf89bd..14fb948  14fb948f84fdf5520dcb7bf39c249fc47d3c5c9e -> master
git push ssh://git@deis.brandfolder.ninja:2222/boulder-staging.git 14fb948f84fdf5520dcb7bf39c249fc47d3c5c9e:master took 1s
More Details:
This occurs about every 10-15 deploys to ANY application. Once it happens, it affects all applications. The other annoying thing is the git remote reports up to date even though the commit didn't deploy anything.
Steps in attempting to fix:
Is the builder running, fleetctl ssh deis-builder docker ps | grep deis-builder. The container is running.
First step: Restart the builder.
fleetctl stop deis-builder && fleetctl start deis-builder
This makes git deploys hang. The builder didn't seem to update any other component that it had been restarted and therefore is not accepting any connections.
Second step: restart the controller and the builder together.
fleetctl stop deis-controller deis-builder && fleetctl start deis-controller deis-builder
This takes a few minutes to come up as the controller slowly and annoyingly updates the config in Etcd.
This FINALLY allows a deploy to go through.

My question to the Deis team: Where could this message come from: remote: You cannot attach to a stopped container, start it first.

Hey @jwaldrip, there doesn't seem to be much information here to go on with to debug your issue. Could you please provide steps to reproduce this issue with a fresh cluster, including version, cloud provider, and client commands to reproduce this? That way we can identify the issue and find a fix for it. Thanks!

ping @jwaldrip

closing as there has been no activity and there are no logs to go on to debug further. Please feel free to re-open once you have logs so we can delve into this issue further. Thanks!

happened to me too.

AWS EC2
Deis 1.12.2

I can't reproduce it, but there are times that AWS EC2 stops a container and brings in a new one with a new IP. This happened, and after that, deis-store-monitor was down in one of the hosts. I manually started it again, then I came across this error.

taken from journalctl -u deis-builder:

sh[7332]: [debug] Output: "2016-02-29T04:52:19Z c1a55baa521d confd[263]: ERROR template: builder:59:14: executing "builder" at <getv "/deis/registry...>: error calling getv: key does not exist
sh[7332]: [info] Re-trying template build. (Elapsed time: 178)
sh[7332]: [debug] Recoverable error: exit status 1

okay, i can't seem to start deis-builder anymore.

from journalctl -u deis-controller:

2016-02-29T05:01:00Z 3ee3051401db confd[232]: ERROR template: confd_settings.py:30:58: executing "confd_settings.py" at <getv "/deis/registry...>: error calling getv: key does not exist
controller: waiting for confd to write initial templates...


Turn on GC logging on running JVM

Hi,
Is there any way to turn on the GC logging on running JVM using jattach? I think we can achieve this using the jinfo tool.

Yes.
JDK 8
jattach <pid> setflag PrintGC 1
jattach <pid> setflag PrintGCDetails 1

JDK 9+
jattach <pid> jcmd "VM.log what=gc*=info"

Thank you :)


How do I find the model node corresponding to where I click on the screen?

1、Load a GLTF model.
2、The GLTF model consists of many nodes.
3、When the screen position is clicked, the model node for the current clicked position needs to be highlighted.
The question is, how do I find the model node corresponding to where I clicked?
macOS、iOS platform.
Thanks

https://github.com/google/filament/issues/4266

Please use discussions for questions.


[C++] Better support optional start/stop in "utf8_slice_codeunits" kernel

Describe the bug, including details regarding any error messages, version, and platform.
There have been various (slightly different) bugs reported about using "utf8_slice_codeunits" with optional start or stop. The stop argument is already optional and translated into the largest int to indicate to always slice until the end, but that internal "workaround" also produces some bugs in the current implementation due to integer overflows.
Potentially, we could use a different mechanism to signal a default start/stop, such as using std::optional<int64_t> instead of std::numeric_limits<int64_t>::max()
Listing the related issues:

https://github.com/apache/arrow/issues/28940
https://github.com/apache/arrow/issues/14991
https://github.com/apache/arrow/issues/34917
https://github.com/apache/arrow/issues/34928

The option class is also used for "binary_slice" kernel.
Component(s)
C++

cc @benibus . This would slightly break the C++ API so we have to make sure this would make things better.

If we were to modify SliceOptions directly then that would also affect the ascii kernel as well.
In any case, I'll probably try this with a distinct options class first to see how it goes with one of the kernels. Then we can determine if the breaking change is justified.

If we were to modify SliceOptions directly then that would also affect the ascii kernel as well.

I think it's fine to affect both kernels, and actually it's quite logical as well.
If std::optional had been available to us before, we would probably have used it from the start here.


Best way to integrate Mono?

Thank you very much for providing this!
What is the best way to integrate Mono? I saw in the doku that one should link to the mono runtime. But is there a preferred way to use Mono? Like using the Godot Mono version? Or better to use Godot without Mono but have a separate installation of Mono?
Maybe it would also be interesting to add to the readme.
Thank you! :)

There's a C# implementation for Ink in Godot also floating around. Maybe it is better to use that one if you are going to use Mono anyway?

Right now I am on Godot-Mono and gotot-ink, because I had not found your plugin when researching.
Basically, I am still at the beginning of the project and I would like to switch to your plugin to avoid Godot-Mono (I do not intend to use C# otherwise)
So I guess you answer is to Use Godot without mono and have a separate installation of mono for the inkgd plugin?

mmmh this is not my plugin 🤣
So:

godot-ink (https://github.com/paulloz/godot-ink ) works well with Godot Mono
gdink (https://github.com/ephread/inkgd) works well with Godot GDscript

Are you using Godot Mono (C#)?
Yes? Then use godot-ink
No? Then use gdink

@shrnjad as @2shady4u perfectly summarised, inkgd has no dependencies on mono, it’s implementation of the runtime in pure GDScript. If you intend to you use this plugin, you can use the vanilla version of Godot.

Thank you for the answer. I am using now the Godot version without Mono, which I prefer.
However, in the configuration for inkgd, there is still the field called 'Mono', where I put the pointer to my Mono installation. What is that used for? Will my team-members be able to run the project on their machines without having to install Mono?

However, in the configuration for inkgd, there is still the field called 'Mono', where I put the pointer to my Mono installation. What is that used for?

It’s only required if you want to have the Godot editor recompile (through inklecate) your master *.ink file every time you build/preview your project. [See here].(https://github.com/ephread/inkgd#editor)

Will my team-members be able to run the project on their machines without having to install Mono?

The editor plugin is completely optional and not required to embed the runtime. Plus, if the path to either inklecate or mono is not provided (or can’t be resolved), then the file will no be compiled. The build should go through either way.

Thank you Frédéric! 🙏


De-duplicate Household and Administrative tests after #216 changes

Many of our tests are duplicate, to cover both the Household and the Administrative Account models. Since we are now going to allow any piece of functionality to be available to any record type, we should not have duplicate tests and instead have tests that verify any functionality works on any record type.

**lurch: attach W-009783

Tracking W-009783

Included in production release version 1.15


Pycon apac 2016

If anyone reads korean, please take a look at the pull request (I don't know a word of it.).

Related to issue #26


[KBM] Removed re-reading loop in settings view model (#18098)

Summary of the Pull Request
What is this about:
KeyboardManagerViewModel.LoadProfile expected the mapping settings file to be created by KBM process.
In absence of the file several attempts to read the settings file was done.
What is included in the PR:
Removed re-reading attempts. If no settings file exists we will create it on save.
How does someone test / validate:

Install Power Toys
Erase %LOCALAPPDATA%\Microsoft\PowerToys\Keyboard Manager folder
Open Power Toys Settings
Switch to Keyboard Manager
UI should not freeze

Quality Checklist

[x] Linked issue: #18098
[ ] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/updated
[ ] Binaries: Any new files are added to WXS / YML

[x] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

But who else can write configuration file?
Multiple reader are allowed by default.

@jaimecbernardo , I guess that should be a reason for that. But who else can write configuration file? Multiple readers are allowed by default.

I think both KBMEditor and KBM engine processes might write.
Even if not, this is defensive programming. Even if it's not needed, that original code was there for a reason. If we're not sure, why not letting it in? It's guarding against the user seeing an empty state for his settings and possibly getting his settings cleared after that.

Aha, I see it now. Things could be messy here.

Should this move to draft?

the issue no longer reproduces with this update, right?

Yes, I've checked that.

Thank you. Good work!