boot – GRUB Error During Routine Update

I recently had one of those regular software update messages and went ahead and blindly allowed them. Right before finishing I received the following dialogue message:

Writing GRUB to boot device failed – continue?

I then clicked “Help” and received the following message:

GRUB failed to install to the following devices:
/dev/nvme0n1p2

Do you want to continue anyway? If you do, your computer may not start up properly.

I tried to not continue by clicking Next without checking the box next to the first error message. Ultimately the only way to get out of the dialogue boxes was to check the box and click next.

Did I mess up my GRUB install? I really hate to go through the pain of fixing it if I did and am afraid to reboot my machine now to see because I’m in the middle of an important project. Note that my machine is dual booted with a Windows 10 partition.

Thanks for your help!

Calling AppleScript routine using osascript

Given the following AppleScript code

on myHandler()
    display dialog ("I'm your Handler!")
end myHandler

How do I call myHandler from osascript (using Terminal), plain without parameters, but also with?

c # – Kafka consumer does not receive message when using routine on unit

I have this example of Kafka consumer thread which I want to make routine for the webgl player since the thread does not support webgl. here is my code

IEnumerator KafkaReader()
{

    //try
    //{
        while (_keepThreadRunning)
        {
            using (CachedSchemaRegistryClient schemaRegistry = new CachedSchemaRegistryClient(new SchemaRegistryConfig
            {
                Url = schemaRegistryUrl
            }))

            using (IConsumer consumer = new ConsumerBuilder(new ConsumerConfig
            {
                GroupId = groupName,
                BootstrapServers = bootstrapServers,
                AutoOffsetReset = AutoOffsetReset.Latest,
                EnableAutoCommit = false,
                EnablePartitionEof = true,//whenever the consumer reaches the end of a partition.
                SessionTimeoutMs = 6000,
                StatisticsIntervalMs = 5000,
                Debug = "generic,consumer"


            })

                .SetValueDeserializer(new AvroDeserializer(schemaRegistry).AsSyncOverAsync())
                .SetErrorHandler((_, e) => KafkaErrorOccured(e))//Debug.Log($"Error: {e.Reason}")
                .Build())
            {
                Debug.Log("subscribe");
                Log.Information("Trying to subscribe topic :{0} ", topicName);
                consumer.Subscribe(topicName);


                while (true)
                {
                    ConsumeResult consumeResult = consumer.Consume(400);
                if(consumeResult==null)
                {
                    Debug.Log("consume result is null");
                    yield return null;
                    continue;
                }
                    if (consumeResult.IsPartitionEOF)
                    {
                    Debug.Log("consume result is null is PartitionEOF");
                    Log.Information($"Reached end of topic {consumeResult.Topic}, partition {consumeResult.Partition}, offset {consumeResult.Offset}.");
                        yield return null;
                        continue;

                    }

                    Debug.Log("consumeResult.Value " + consumeResult);
                    Debug.Log("consumeResult.Value " + consumeResult.Message.Value);
                    Debug.Log("consumeResult.Value " + consumeResult.Value);

                    _stringsReceived.Enqueue(consumeResult.Value.ToString());//This line is not required.

                    if (consumeResult != null)
                    {
                        Debug.Log($"Key: {consumeResult.Message.Key}nValue: {consumeResult.Value}");
                        Log.Information("Consuming Result Data. Value of the message  :{1} ", consumeResult.Value);
                    }
                    else
                    {
                        Debug.Log("consumer Result is null");
                        Log.Debug("Consuming Result Data is null");
                    }

                    consumer.Commit(consumeResult);
                    yield return null;
                }

            }
        }

}

There are two problems

  1. me. You are not receiving messages. I refined the registry and discovered that when there is
    there is no message the consumption result is null message appears otherwise no
    Log in.
  2. ii. the loop is still working and I can't stop it properly

SEO routine audit process – Webmasters Stack Exchange

I hope this isn't entirely opinion-based or overly broad, but is there a general process for doing a routine SEO audit? I know there are plenty of SEO experts here and I am sure you do routine SEO audits. Do you have a specific set of steps you routinely go through every month, six months, or once a year?

Should usability tests on a competitor's website be part of their usability testing routine?

I can think of several things this can do for the results of your test.

The obvious: consider the situation in which your product is not yet available, or if you are developing a new feature. Learning from the mistakes others have already made, or from what they did well, is immensely valuable.

It can also help you judge the problems the test reveals. I think that sometimes we all fall into the trap of minimizing the deficiencies of something we create, while we have no problem criticizing the work of others. By testing the products of your competition, you may find deficiencies that you were ignoring in your own product. You will look at it with new eyes and can provide a reality check when looking at your own product (again) you cannot. Especially if you are doing an expert / heuristic review, this could be very valuable.

Users will have learned certain problem-solving tactics that they will apply without being aware of it. It can be very useful to do something on a competitor's site, but if that tactic is not available in yours, it will not appear in your test. They may tell you something about your product that isn't very useful, but they probably won't be able to tell you what. Therefore, looking at people who use their competitor's product could reveal such tactics.

The same goes for the product characteristics of a competitor that you might not think were important. Users may not tell you that they use them, but tests may reveal that they are important anyway. Keep in mind that this means that your product and that of the competition are do not The same could be valuable too.

Something else: you are inviting people to judge your product. Of course, he will prepare them carefully, but they may be holding back criticism. Looking at a competitor's product could ask for comments that he was not receiving on his own product.

Although this is not strictly related to usability tests, I have found that in the context mapping sessions the anecdotes and comments that occur around the actual session can be very informative. Unless you perform a test for a specific problem area, this means that separating from the core test can provide you with a great deal of useful information for the (interaction) design of the product.

There are probably more.

unity – Hello everyone, can a routine block a tread and a main thread? Here are my anr reports … :)

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x76124000 self=0xb8c90630
  | sysTid=14257 nice=-6 cgrp=apps sched=0/0 handle=0xb6f3cec8
  | state=S schedstat=( 17722980711 3926538577 33817 ) utm=1401 stm=371 core=0 HZ=100
  | stack=0xbe193000-0xbe195000 stackSize=8MB
  | held mutexes=
  #00  pc 0000000000039cc0  /system/lib/libc.so (__ioctl+8)
  #01  pc 000000000003f3d9  /system/lib/libc.so (ioctl+14)
  #02  pc 000000000001cbbb  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
  #03  pc 000000000001d1d7  /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+42)
  #04  pc 000000000001d379  /system/lib/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+124)
  #05  pc 000000000001860f  /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+30)
  #06  pc 00000000000875f3  /system/lib/libandroid_runtime.so (???)
  #07  pc 0000000000a88b99  /system/framework/arm/boot.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+144)
  at android.os.BinderProxy.transactNative (Native method)
  at android.os.BinderProxy.transact (Binder.java:496)
  at aq.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):38)
- locked <@addr=0x12f9a200> (a java.lang.Object)
  at an.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):3)
  at ap.a (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):3)
  at ah.c (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):8)
  at ak.handleMessage (com.google.android.gms.dynamite_measurementdynamite@200414028@20.04.14 (020304-0):29)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:135)
  at android.app.ActivityThread.main (ActivityThread.java:5753)
  at java.lang.reflect.Method.invoke! (Native method)
  at java.lang.reflect.Method.invoke (Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)




"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x75271f70 self=0xa8005400
  | sysTid=23701 nice=-4 cgrp=default sched=0/0 handle=0xaacb9534
  | state=S schedstat=( 0 0 0 ) utm=667 stm=316 core=0 HZ=100
  | stack=0xbe1ff000-0xbe201000 stackSize=8MB
  | held mutexes=
  #00  pc 00000000000484d8  /system/lib/libc.so (__epoll_pwait+20)
  #01  pc 000000000001a19d  /system/lib/libc.so (epoll_pwait+60)
  #02  pc 000000000001a1cd  /system/lib/libc.so (epoll_wait+12)
  #03  pc 0000000000011c87  /system/lib/libutils.so (android::Looper::pollInner(int)+118)
  #04  pc 0000000000011b83  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+26)
  #05  pc 000000000008f169  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+22)
  #06  pc 000000000061c5bd  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:323)
  at android.os.Looper.loop (Looper.java:136)
  at android.app.ActivityThread.main (ActivityThread.java:6146)
  at java.lang.reflect.Method.invoke! (Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:865)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)





"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x75781708 self=0xb0085400
  | sysTid=16356 nice=-4 cgrp=default sched=0/0 handle=0xb2d18534
  | state=S schedstat=( 0 0 0 ) utm=81 stm=59 core=0 HZ=100
  | stack=0xbe670000-0xbe672000 stackSize=8MB
  | held mutexes=
  #00  pc 00000000000173f4  /system/lib/libc.so (syscall+28)
  #01  pc 00000000000b713d  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
  #02  pc 00000000003f23ab  /system/lib/libart.so (art::GoToRunnable(art::Thread*)+230)
  #03  pc 00000000003f229b  /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8)
  #04  pc 0000000000621b8f  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+106)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:323)
  at android.os.Looper.loop (Looper.java:136)
  at android.app.ActivityThread.main (ActivityThread.java:6216)
  at java.lang.reflect.Method.invoke! (Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:887)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:777)






"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x72ff3770 self=0xa803f000
  | sysTid=14677 nice=-10 cgrp=default sched=0/0 handle=0xaca064a4
  | state=S schedstat=( 2405664844 1074645320 2868 ) utm=79 stm=160 core=1 HZ=100
  | stack=0xbe153000-0xbe155000 stackSize=8MB
  | held mutexes=
  #00  pc 0000000000018cc4  /system/lib/libc.so (syscall+28)
  #01  pc 00000000000b71cd  /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+80)
  #02  pc 00000000003e0911  /system/lib/libart.so (art::GoToRunnable(art::Thread*)+300)
  #03  pc 00000000003e07b5  /system/lib/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+8)
  #04  pc 0000000000772161  /system/framework/arm/boot-framework.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+144)
  at android.os.BinderProxy.transactNative (Native method)
  at android.os.BinderProxy.transact (Binder.java:776)
  at android.app.IActivityManager$Stub$Proxy.refContentProvider (IActivityManager.java:4841)
  at android.app.ActivityThread.incProviderRefLocked (ActivityThread.java:6225)
  at android.app.ActivityThread.acquireExistingProvider (ActivityThread.java:6288)
- locked <0x00829d09> (a android.util.ArrayMap)
  at android.app.ActivityThread.acquireProvider (ActivityThread.java:6166)
  at android.app.ContextImpl$ApplicationContentResolver.acquireProvider (ContextImpl.java:2526)
  at android.content.ContentResolver.acquireProvider (ContentResolver.java:1733)
  at android.content.ContentResolver.query (ContentResolver.java:779)
  at android.content.ContentResolver.query (ContentResolver.java:704)
  at android.content.ContentResolver.query (ContentResolver.java:662)
  at com.google.android.gms.dynamite.DynamiteModule.zzc (unavailable:122)
  at com.google.android.gms.dynamite.DynamiteModule.zza (unavailable:96)
  at com.google.android.gms.dynamite.DynamiteModule.getRemoteVersion (unavailable:149)
  at com.google.android.gms.internal.ads.zzus.zzd
  at com.google.android.gms.internal.ads.zzxd.zza
  at com.google.android.gms.ads.InterstitialAd.loadAd
  at com.google.unity.ads.Interstitial$2.run (Interstitial.java:152)
  at android.os.Handler.handleCallback (Handler.java:795)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:166)
  at android.app.ActivityThread.main (ActivityThread.java:6861)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:450)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)







"main" prio=5 tid=1 Waiting
  | group="main" sCount=1 dsCount=0 obj=0x85921000 self=0xb4827800
  | sysTid=32088 nice=0 cgrp=default sched=0/0 handle=0xb6f36bec
  | state=S schedstat=( 0 0 0 ) utm=287 stm=134 core=0 HZ=100
  | stack=0xbe303000-0xbe305000 stackSize=8MB
  | held mutexes=
  at java.lang.Object.wait! (Native method)
- waiting on <0x2e0733ff> (a java.lang.Object)
  at java.lang.Thread.parkFor (Thread.java:1220)
- locked <0x2e0733ff> (a java.lang.Object)
  at sun.misc.Unsafe.park (Unsafe.java:299)
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (AbstractQueuedSynchronizer.java:813)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly (AbstractQueuedSynchronizer.java:973)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1281)
  at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:202)
  at android.app.SharedPreferencesImpl$EditorImpl$1.run (SharedPreferencesImpl.java:363)
  at android.app.QueuedWork.waitToFinish (QueuedWork.java:88)
  at android.app.ActivityThread.handleStopActivity (ActivityThread.java:3866)
  at android.app.ActivityThread.access$1200 (ActivityThread.java:177)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1454)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:135)
  at android.app.ActivityThread.main (ActivityThread.java:5910)
  at java.lang.reflect.Method.invoke! (Native method)
  at java.lang.reflect.Method.invoke (Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)






"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x741d4730 self=0x6f354c2a00
  | sysTid=9741 nice=-10 cgrp=default sched=0/0 handle=0x6fba6d99a8
  | state=S schedstat=( 1881119592 824547978 3737 ) utm=137 stm=51 core=0 HZ=100
  | stack=0x7fe16a2000-0x7fe16a4000 stackSize=8MB
  | held mutexes=
  #00  pc 000000000001e4ac  /system/lib64/libc.so (syscall+28)
  #01  pc 00000000000e7620  /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+152)
  #02  pc 0000000000346158  /system/lib64/libart.so (art::JNI::CallObjectMethod(_JNIEnv*, _jobject*, _jmethodID*, ...)+552)
  #03  pc 00000000000eede0  /system/lib64/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long, int, unsigned int)+48)
  #04  pc 0000000000048514  /system/lib64/libandroidfw.so (android::DisplayEventDispatcher::handleEvent(int, int, void*)+164)
  #05  pc 0000000000016260  /system/lib64/libutils.so (android::Looper::pollInner(int)+816)
  #06  pc 0000000000015ea0  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)
  #07  pc 000000000011b610  /system/lib64/libandroid_runtime.so (???)
  #08  pc 00000000001f6aac  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:325)
  at android.os.Looper.loop (Looper.java:170)
  at android.app.ActivityThread.main (ActivityThread.java:7055)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:523)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:836)








"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x72756c68 self=0x750cc5fe00
  | sysTid=7355 nice=-10 cgrp=default sched=0/0 handle=0x75929b69a8
  | state=S schedstat=( 1434359968 1175390232 4126 ) utm=73 stm=70 core=0 HZ=100
  | stack=0x7fedfcc000-0x7fedfce000 stackSize=8MB
  | held mutexes=
  #00  pc 000000000007a1c0  /system/lib64/libc.so (__epoll_pwait+8)
  #01  pc 00000000000201d8  /system/lib64/libc.so (epoll_pwait+48)
  #02  pc 0000000000015f9c  /system/lib64/libutils.so (android::Looper::pollInner(int)+148)
  #03  pc 0000000000015e78  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+108)
  #04  pc 0000000000117434  /system/lib64/libandroid_runtime.so (???)
  #05  pc 00000000001e7e6c  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:329)
  at android.os.Looper.loop (Looper.java:150)
  at android.app.ActivityThread.main (ActivityThread.java:6702)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:549)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:826)








"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 flags=1 obj=0xec01358 self=0xa79d0000
  | sysTid=21324 nice=-20 cgrp=default sched=1073741825/1 handle=0xab8514a4
  | state=S schedstat=( 12419814912 272368784 4478 ) utm=1186 stm=55 core=0 HZ=100
  | stack=0xbe7fe000-0xbe800000 stackSize=8MB
  | held mutexes=
  #00  pc 00000000000486cc  /system/lib/libc.so (__ioctl+8)
  #01  pc 000000000001d09f  /system/lib/libc.so (ioctl+38)
  #02  pc 000000000004267f  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+170)
  #03  pc 0000000000043039  /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+236)
  #04  pc 000000000003d535  /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+36)
  #05  pc 00000000000bc995  /system/lib/libandroid_runtime.so (???)
  #06  pc 0000000000410079  /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
  #07  pc 000000000040bb75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #08  pc 0000000000410ce7  /system/lib/libart.so (art_quick_invoke_stub+230)
  #09  pc 00000000000b0ab7  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+138)
  #10  pc 0000000000205e79  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+220)
  #11  pc 0000000000201395  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+588)
  #12  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)
  #13  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)
  #14  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #15  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #16  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #17  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)
  #18  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)
  #19  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #20  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #21  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #22  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)
  #23  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)
  #24  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #25  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #26  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #27  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)
  #28  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)
  #29  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #30  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #31  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #32  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)
  #33  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)
  #34  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #35  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #36  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #37  pc 00000000003f6d3d  /system/lib/libart.so (MterpInvokeStatic+184)
  #38  pc 00000000003fe114  /system/lib/libart.so (ExecuteMterpImpl+14612)
  #39  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #40  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #41  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #42  pc 00000000003f691b  /system/lib/libart.so (MterpInvokeInterface+1078)
  #43  pc 00000000003fe194  /system/lib/libart.so (ExecuteMterpImpl+14740)
  #44  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #45  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #46  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #47  pc 00000000003f6271  /system/lib/libart.so (MterpInvokeSuper+1148)
  #48  pc 00000000003fe014  /system/lib/libart.so (ExecuteMterpImpl+14356)
  #49  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #50  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #51  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #52  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)
  #53  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)
  #54  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #55  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #56  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #57  pc 00000000003f5d3b  /system/lib/libart.so (MterpInvokeVirtual+482)
  #58  pc 00000000003fdf94  /system/lib/libart.so (ExecuteMterpImpl+14228)
  #59  pc 00000000001e820d  /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame&, art::JValue, bool)+340)
  #60  pc 00000000001ec9c3  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::DexFile::CodeItem const*, art::ShadowFrame*, art::JValue*)+142)
  #61  pc 000000000020137d  /system/lib/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+564)
  #62  pc 00000000003f6d3d  /system/lib/libart.so (MterpInvokeStatic+184)
  #63  pc 00000000003fe114  /system/lib/libart.so (ExecuteMterpImpl+14612)
  at android.os.BinderProxy.transactNative (Native method)
  at android.os.BinderProxy.transact (Binder.java:792)
  at android.app.IActivityManager$Stub$Proxy.unbindService (IActivityManager.java:5007)
  at android.app.ContextImpl.unbindService (ContextImpl.java:1641)
  at android.content.ContextWrapper.unbindService (ContextWrapper.java:703)
  at mc.a (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268:3)
  at ld.handleMessage (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268:10)
- locked <0x01ea765f> (a java.util.HashMap)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at oz.a (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268)
  at oz.dispatchMessage (com.google.android.gms.policy_ads_fdr_dynamite@21207000@21207000.283464268.283464268)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6747)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:449)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

Algorithm: this iterative routine of post-order travel occurred to me and my wife

I wanted to receive feedback on the correctness and efficiency of this transversal order routine that both my wife and I found really easy to understand.

def postOrderTraversal(root: TreeNode):
  curr = root
  stack = ()

  while stack or curr:
    if curr is None:
      if stack(-1).right is None or popped == stack(-1).right:
        popped = stack.pop()
        print(popped.val)
      else:
        curr = stack(-1).right
    else:
      stack.append(curr)
      curr = curr.left

The recursive routine blocks the unit

I want the limits (left wall and right wall) to follow the position and of the player, a couple of times. however, when I use this code as soon as it is executed, the unit hangs.
Any idea why?

public Transform bounds;

//in another function
StartCoroutine(Follow_Bounds(0));

IEnumerator Follow_Bounds(int a)
{
    yield return new WaitForSeconds(1f);
    while(a < 3)
    {
        StartCoroutine(Follow_Bounds(a + 1));
    }
   bounds.position = new Vector2(bounds.position.x, transform.position.y);
}

Ensure a node addition routine without problems

I am building a site in Drupal 8, where users can add training programs. An example of such a program might look like this:

Simulated training

In my view, I will need 3 types of nodes:
Type 1 Node: Program (with a Set entity reference)
Type 2 Node: Set (with a Exercise entity reference)
Type 3 Node: Exercise

When adding a Program node type, can have multiple Set entity references. When adding a Set, – you will need a Exercise entity reference.

But how to ensure a routine of adding "Program" without problems? Then, by adding a set to a program, the user will be sent back to the program after creating the necessary Set-node.

I hope my description makes sense. Any ideas?

How to export routine MySQL information? Third party tool?

So, apparently, only the $ 2,000 SE version of MySQL Workbench has a built-in documentation export, so, using the MySQL CE version, I need to find a tool that exports all the routine information along with its parameters and comments for Let our developers make reference. I've spent hours trying to find that tool, but every solution I find costs more than $ 500 or is not a real solution. I am quite surprised that there is no standard open source tool that simply generates the HTML exports required by the Routine developer for the MySQL database.

Can anyone recommend something?