JavaFX example hangs on Mac OS X Yosemite

Hi,
when trying to launch the JavaFX example WebCamAppLauncher the programs hangs while searching for devices. I guess the problem is related to #318.
I get the following output:
17:39:07.222 [JavaFX Application Thread] INFO  com.github.sarxos.webcam.Webcam - WebcamDefaultDriver capture driver will be used
17:39:07.229 [webcam-discovery-service] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices

and the output from jstack:
2015-06-21 17:41:57
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode):

"Attach Listener" #19 daemon prio=9 os_prio=31 tid=0x00007ff334aa1800 nid=0x7f17 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"atomic-processor-1" #17 daemon prio=5 os_prio=31 tid=0x00007ff335208800 nid=0xc403 runnable [0x00000001269f5000]
   java.lang.Thread.State: RUNNABLE
    at com.github.sarxos.webcam.ds.buildin.natives.OpenIMAJGrabber.getVideoDevices(Native Method)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$GetDevicesTask.handle(WebcamDefaultDriver.java:93)
    at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.run(WebcamProcessor.java:81)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"webcam-discovery-service" #16 daemon prio=5 os_prio=31 tid=0x00007ff3351ff000 nid=0xc107 waiting on condition [0x00000001268f2000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000796c32fc0> (a java.util.concurrent.SynchronousQueue$TransferQueue)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.SynchronousQueue$TransferQueue.awaitFulfill(SynchronousQueue.java:762)
    at java.util.concurrent.SynchronousQueue$TransferQueue.transfer(SynchronousQueue.java:695)
    at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:924)
    at com.github.sarxos.webcam.WebcamProcessor$AtomicProcessor.process(WebcamProcessor.java:70)
    at com.github.sarxos.webcam.WebcamProcessor.process(WebcamProcessor.java:140)
    at com.github.sarxos.webcam.WebcamTask.process(WebcamTask.java:46)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver$GetDevicesTask.getDevices(WebcamDefaultDriver.java:79)
    at com.github.sarxos.webcam.ds.buildin.WebcamDefaultDriver.getDevices(WebcamDefaultDriver.java:124)
    at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:36)
    at com.github.sarxos.webcam.WebcamDiscoveryService$WebcamsDiscovery.call(WebcamDiscoveryService.java:26)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

"Thread-4" #15 daemon prio=5 os_prio=31 tid=0x00007ff3351ec800 nid=0x9103 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JavaFX Application Thread" #14 prio=5 os_prio=31 tid=0x00007ff3349e9000 nid=0x713 waiting on condition [0x00007fff57c14000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000796ba5158> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.ThreadPoolExecutor.awaitTermination(ThreadPoolExecutor.java:1465)
    at java.util.concurrent.Executors$DelegatedExecutorService.awaitTermination(Executors.java:675)
    at com.github.sarxos.webcam.WebcamDiscoveryService.getWebcams(WebcamDiscoveryService.java:113)
    - locked <0x0000000796b16f60> (a java.lang.Class for com.github.sarxos.webcam.Webcam)
    at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:874)
    - locked <0x0000000796b16f60> (a java.lang.Class for com.github.sarxos.webcam.Webcam)
    at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:847)
    at com.github.sarxos.webcam.Webcam.getWebcams(Webcam.java:826)
    at com.bazinga.WebCamAppLauncher.createTopPanel(WebCamAppLauncher.java:147)
    at com.bazinga.WebCamAppLauncher.start(WebCamAppLauncher.java:99)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(LauncherImpl.java:863)
    at com.sun.javafx.application.LauncherImpl$$Lambda$53/1742046688.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl$$Lambda$49/362249184.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
    at com.sun.javafx.application.PlatformImpl$$Lambda$51/627756177.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
    at com.sun.javafx.application.PlatformImpl$$Lambda$50/2115686102.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

"Thread-2" #13 daemon prio=5 os_prio=31 tid=0x00007ff335997000 nid=0x6213 in Object.wait() [0x00000001226ba000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000796290488> (a java.lang.StringBuilder)
    at java.lang.Object.wait(Object.java:502)
    at com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:126)
    - locked <0x0000000796290488> (a java.lang.StringBuilder)

"QuantumRenderer-0" #11 daemon prio=5 os_prio=31 tid=0x00007ff334a2d800 nid=0x4f03 waiting on condition [0x00000001220a8000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000796155920> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.lang.Thread.run(Thread.java:745)

"JavaFX-Launcher" #10 prio=5 os_prio=31 tid=0x00007ff3341cd000 nid=0x4d03 waiting on condition [0x0000000121fa5000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000007962a9e90> (a java.util.concurrent.CountDownLatch$Sync)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
    at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
    at com.sun.javafx.application.PlatformImpl.runAndWait(PlatformImpl.java:337)
    at com.sun.javafx.application.PlatformImpl.runAndWait(PlatformImpl.java:307)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:856)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$152(LauncherImpl.java:182)
    at com.sun.javafx.application.LauncherImpl$$Lambda$2/2008017533.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)

"Monitor Ctrl-Break" #9 daemon prio=5 os_prio=31 tid=0x00007ff334854800 nid=0x4b03 runnable [0x0000000121bac000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:404)
    at java.net.ServerSocket.implAccept(ServerSocket.java:545)
    at java.net.ServerSocket.accept(ServerSocket.java:513)
    at com.intellij.rt.execution.application.AppMain$1.run(AppMain.java:90)
    at java.lang.Thread.run(Thread.java:745)

"Service Thread" #8 daemon prio=9 os_prio=31 tid=0x00007ff334013800 nid=0x4703 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread2" #7 daemon prio=9 os_prio=31 tid=0x00007ff33482f800 nid=0x4503 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #6 daemon prio=9 os_prio=31 tid=0x00007ff33482e800 nid=0x4303 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=31 tid=0x00007ff335852000 nid=0x4103 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=31 tid=0x00007ff335025000 nid=0x400f runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007ff33400b000 nid=0x2b03 in Object.wait() [0x000000011fa4c000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000795586f58> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
    - locked <0x0000000795586f58> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007ff33481e800 nid=0x2903 in Object.wait() [0x000000011f949000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x0000000795586998> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
    - locked <0x0000000795586998> (a java.lang.ref.Reference$Lock)

"main" #1 prio=5 os_prio=31 tid=0x00007ff335009000 nid=0xd03 waiting on condition [0x000000010914c000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000795f88900> (a java.util.concurrent.CountDownLatch$Sync)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
    at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:200)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:143)
    at javafx.application.Application.launch(Application.java:252)
    at com.bazinga.WebCamAppLauncher.main(WebCamAppLauncher.java:297)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

"VM Thread" os_prio=31 tid=0x00007ff33481d800 nid=0x2703 runnable

"GC task thread#0 (ParallelGC)" os_prio=31 tid=0x00007ff335800800 nid=0x1f03 runnable

"GC task thread#1 (ParallelGC)" os_prio=31 tid=0x00007ff335801800 nid=0x2103 runnable

"GC task thread#2 (ParallelGC)" os_prio=31 tid=0x00007ff335802000 nid=0x2303 runnable

"GC task thread#3 (ParallelGC)" os_prio=31 tid=0x00007ff335802800 nid=0x2503 runnable

"VM Periodic Task Thread" os_prio=31 tid=0x00007ff33583e800 nid=0x4903 waiting on condition

JNI global references: 515

Searching for Webcams in a separate thread like this works without problems:
new Thread(() -> {
    for(Webcam w : Webcam.getWebcams()) {
        System.out.println(w.getName());
    }
}).start();

Any solutions for this? I've tried to search for the webcams in a different thread, but its still freezing up.

@Greg767,
The issue is caused by the Apple limitation that allows some native code to run only on the main thread when using SWT, GWT or JavaFX.
Have you try starting your app with -XstartOnFirstThread JVM option? If this won't help you can also try w/a implemented by @phrack in his commit https://github.com/phrack/ShootOFF/commit/2144100b711083b3a3d401b17cbb702cef0706e5

Hey thanks for the quick reply. I just tried with -XstartOnFirstThread and it still hangs. I will look into that post.
By the was does it suppose to work with the built-in cam as well or it must have a USB cam?

@Greg767,
In regards to:

By the way does it suppose to work with the built-in cam as well or it must have a USB cam?

Yes. It support both build-in and UVC :)

OK so finally what worked for me is to switch to my Macbook to finalize the development and get the default cam in a Task, as per the code exemple. I didn't need to use -XstartOnFirstThread option.
Thanks a lot.

I am having a similar issue and I can confirm that putting -XstartOnFirstThread did not solve the problem.
@Greg767 can you please elaborate your solution?

For me it worked without that property on a Mac in netbeans and I used this code:
`protected void initializeWebCam(final int webCamIndex) {
takeImageBtn.setDisable(true);
webcamDisposed = false;
    Task<Void> webCamTask = new Task<Void>() {

        @Override
        protected Void call() throws Exception {

            if (webCam != null) {
                disposeWebCamCamera();
            }

            for (Webcam w : Webcam.getWebcams()) {
                if(!w.getName().contains("FaceTime"))
                    webCam = w;
            }
            if(webCam == null)
                webCam = Webcam.getDefault();
            Dimension[] sizes = webCam.getViewSizes();
            webCam.setViewSize(sizes[sizes.length - 1]);
            webCam.open();

            startWebCamStream();

            return null;
        }
    };

    Thread webCamThread = new Thread(webCamTask);
    webCamThread.setDaemon(true);
    webCamThread.start();

}`

@Greg767 thanks for sharing the code. I think the clear solution here is to run webcam.getWebcams() on a separate thread. Webcam on my Mac works now although I'm still figuring out why webcam.close() throws NullPointerException.

Hi @hendraanggrian,
Can you please elaborate more about this NullPointerException in close()? Especially, can you provide stack trace?

@sarxos I weirdly cannot reproduce the error, at this point everything works great with your library. Thanks!

Cool, in case it manifest again please do not hesitate to report it :)

I found that in general the FX Application Thread is prone to hanging if you interact with the web cam much at all on that thread. E.g. Webcam.close() or Webcam.getWebcams() seem to cause deadlock. (Mac OS X Sierra on a Macbook Pro with built-in camera). I haven't tested much (honestly, I don't actually use the library, I was just answering a StackOverflow question...), but I created a couple of wrapper classes that wrap the Webcam as a JavaFX service and a corresponding view. Not intended to be production quality, but if you are interested in adapting that as an example, feel free (just acknowledge, please). Gist at https://gist.github.com/james-d/f826c9f38d53628114124a56fb7c4557

Hi @james-d,
Thank you for this contribution. Indeed many people from Webcam Capture community reported that using this API on Mac is somehow tricky.
In regards to your code - since there are lambdas in your code I had to update pom.xml to specify Java source and target compatibility:
<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.3</version>
  <configuration>
    <source>1.8</source>
    <target>1.8</target>
  </configuration>
</plugin>

Otherwise it gave me compilation error:
$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building WebCamTest 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ WebCamTest ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ WebCamTest ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ WebCamTest ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 3 source files to /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/src/main/java/WebCamView.java:[25,95] lambda expressions are not supported in -source 1.5
  (use -source 8 or higher to enable lambda expressions)
[ERROR] /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/src/main/java/FXCamTest.java:[34,41] lambda expressions are not supported in -source 1.5
  (use -source 8 or higher to enable lambda expressions)
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.299 s
[INFO] Finished at: 2017-03-16T09:27:57+01:00
[INFO] Final Memory: 12M/291M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project WebCamTest: Compilation failure: Compilation failure:
[ERROR] /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/src/main/java/WebCamView.java:[25,95] lambda expressions are not supported in -source 1.5
[ERROR] (use -source 8 or higher to enable lambda expressions)
[ERROR] /home/sarxos/workspace/webcam-capture/webcam-capture-examples/webcam-capture-javafx-service/src/main/java/FXCamTest.java:[34,41] lambda expressions are not supported in -source 1.5
[ERROR] (use -source 8 or higher to enable lambda expressions)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

@james-d, I included your code as a new example. Feel free to modify it whenever you need.
https://github.com/sarxos/webcam-capture/tree/master/webcam-capture-examples/webcam-capture-javafx-service
Thanks!


Merge of discord-experimental into dev

Implements Discord RPC for the Portal 2: Multiplayer Mod, along with using Webhook to send messages from the game chat to a Discord channel of choice via Curl. The branch also provides a few other QoL and bug fixes that weren't on dev.

Time to blow up this branch now :D


Emmet places HTML tags around the last word when entering text in between HTML tags.

VSCode Version: 1.31.1
OS Version: Win 10

Steps to Reproduce:

Have emmet/new emmet.
2.Type within html tags, then press tab.

Reproduces without extensions: Yes
When trying to enter a tag quickly, say

words words words

I expect the behavior to be like:

h1 -> tab -> enter contents of h1 tag -> tab to end of tag to continue writing.

and you should get this. with the cursor at the end of the closing tag.

words words words
|

Instead I get something like this with the last word wrapped in a random tag, and the cursor and the end of the newly created tags.

words words <words></words>|
.

Yet if I hit space at the end of the word, so that there is nothing to put inside of tags, hitting tab goes to the end of the closing tag as I want it to.
The only plugin I have for the editor is "indent-rainbow" and my settings look like this:

"editor.tabSize": 2,
"editor.wordBasedSuggestions": false,
"workbench.colorTheme": "Atom One Dark",
"editor.rulers": [80,100],
"editor.wordWrap": "off",
"editor.cursorStyle": "line",
"editor.renderWhitespace": "all",
"emmet.useNewEmmet": true

Here is a video showing my issue. https://streamable.com/ofkbv
I have also been able to reproduce this in Atom by installing the Emmet plugin, so it must have something to do with that, but I cannot find a setting to make it only put tags around emmet shortcuts, instead of around every word when pressing tab.

Thanks for the detailed bug description, I really appreciate it :)
Let's use #30265 to track this.


Add further commands

Mostly stats commands are missing I think.

hi @kelunik. I can help you with this

Great!

@kelunik here you can find the PR https://github.com/amphp/beanstalk/pull/5

@kelunik seems can be closed

Yes, I think there are no more commands left, thanks again!

@zhikiri I've adjusted your PR, because it needs to return the correct types: cbf8cfa9ca5e3100f0d3d578e77653b9da564656
I'm also reopening this issue, because listTubes() is still missing.

@kelunik but what about auto conversion for types ? When client will check $stats->job_running > 6 it will be converted from string to int automatically

and yes, list tubes is missing, your right

@zhikiri Yes, that mostly works, but it doesn't work with strict_types=1 or assertSame / ===.

@kelunik so true

Closing now due to #6 being merged. Thanks!


Support HTTP PATCH

RFC 5789 adds the HTTP PATCH verb which is used in several places by the GitHub API to update resources.  See for example Update a Reference.
If I have some spare time I might be able to contribute a PR, but before starting such a task I want to make sure I understand the scope of the changes.  A quick analysis shows that at least the following would need to be done:

Add PATCH to HttpVerb enum
Add doPatch methods to:

JavaHttpBuilder
ApacheHttpBuilder
OkHttpBuilder

Add the ten patch methods to HttpBuilder

patch(): Object
patch(Closure): Object
patch(Consumer<HttpConfig>): Object
patch(Class<T>,Closure): T
patch(Class<T>, Consumer<HttpConfig>) : T
patchAsync() : CompletableFuture<Object>
patchAsync(Closure) : CompletableFuture<Object>
patchAsync(Consumer<HttpConfig>) : CompletableFuture<Object>
patchAsync(Class<T>, Closure) : CompletableFuture<T>
patchAsync(Class<T>, Consumer<HttpConfig>) : CompletableFuture<T>

Spock unit tests for all of the above.
Updated documentation for all of the above.

Am I missing anything else?
Edit: there are 10 methods that need to be added to HttpBuilder.

Sounds like that would do it. We considered PATCH support but didn't think anything used it. Please base your branch off of the development branch.
Luckily, I did support PATCH in the Ersatz server library for testing. ☺
Thanks and if it becomes too much effort, let us know and we can take it over. Sounds like it would be useful.

Actually, it turned out to be relatively easy.  I simply copied everything related to the PUT method and did a few find/replace operations

put( --> patch(
putAsync( --> patchAsync(
PUT --> PATCH

That seemed to take care of 90% of the work.  Of course, since this is a big copy/change/paste there are plenty of opportunities for errors and repeating typos.
I have created a PR for comments and discussion, but you probably don't want to accept it as is:

I bumped the version in build.gradle to 0.16.0 so I could install and test it locally without stomping on the 0.15.0 release I also have installed.
I wasn't sure what to do with the copyright notice at the top of the files I added.  I have IntelliJ configured to automatically insert an Apache license header with my name in the copyright whenever I create a new file.  Similarly it also adds my name as the @author of classes I create.  I can go through as massage these as needed.

Other minor tweaks.

.gitignore had .idea and *.iml listed twice but was missing *.ipr (IDEA project) and *.iws (IDEA workspace)

I should be able to review the pull request tomorrow.

I knew it seemed too easy.
There is one major caveat that will definitely need to be documented somewhere: the HttpURLConnection.setRequestMethod(String) method throws a ProtocolException if the method is not one of the standard HTTP/1.1 verbs and PATCH is not one of the standard HTTP/1.1 verbs.
This is only a problem for the JavaHttpBuilder, both the ApacheHttpBuilder and OkHttpBuilder accept non-standard request methods and work as desired.
For the JavaHttpBuilder case there are two options:

fail fast and throw an exception in the JavaHttpBuilder.doPatch method since we know that the setRequestMethod is going to throw an exception.
there is a hack-around to set a X-HTTP-Method-Override header and then send the request as a POST. We would need to add some logic around line 58 of the JavaHttpBuilder.java file for this.

I've added some comments and a //TODO marker to the PR.

Yeah there are some hidden "gems" in these libraries we've had to work around. I'm not really liking option 2 since it's not really an expected behavior. I'd say option 1 and just throw an UnsupportedOperationException - it can be documented that PATCH is not supported by the core client. Not ideal but...

I'll make the change and throw an UnsupportedOperationException.
It might be worth considering making ApacheHttpBuilder the core client rather than JavaHttpBuilder, but that discussion probably belongs in its own issue.

The "core" library is actually poorly named... it should really be called "java-standard" or something but that's too long. It's meant to be the core of the library itself, but also a dependency-less implementation of the library (i.e. standard java).
Another note: Since the core library does not support PATCH you will want to cut the core PATCH tests off from the test kit and just test each patch method to ensure that they throw the expected exception.

I reviewed the current PR and it looks good (see PR comments).
Also, I just pushed copyright header and doc updates to the development branch - please merge them into your branch before moving forward. Thanks.

The pull request has been merged into the development branch and the 0.16 release will be cut within the next few days.

This is in the 0.16.0 release, which is now out in the wild.

Excellent!  Thank you.
Of course, as I was pulling in the new version I noticed a small typo on line 101 of JavaHttpPatchSpec:
http.patchAsync(config)exceptionally { e ->

should be
 http.patchAsync(config).exceptionally { e ->

The code works as desired due to Groovy's method call chaining mechanism, but the missing dot between (config) and exceptionally is like fingernails on a blackboard for my OCD now that I've seen it.  The issue (if you want to call it that) likely doesn't warrant a pull-request, but someone might want to add the missing dot before the next release.

Ha... I will update it in the development branch.


Sema: Prioritize @_exported imports over local non-public imports

Update the logic selecting the most restrictive import for a given reference to account for @_exported imports from the local module. We should always prioritize @_exported imports from the local module over more restrictive same file imports. Only if an import from the same file is also public we prefer it as it's more useful for diagnostics and generally recommended to locally declare dependencies.
Also update the test that was meant to check this configuration to apply two different variations, one for a module local @_exported and one relying on the underlying clang module.
rdar://140924031

@swift-ci Please smoke test

@swift-ci Please smoke test Linux

@swift-ci Please smoke test Linux


Issues with MGS1 Integral

I like this ddraw wrapper very much because it shows a higher quality than others, in addition the speed is fast, but in MGS1 at the time of leaving the game nothing appears when a confirmation notification should appear, in addition the game is closed in Game Over using software rendering

that's the menu that should appear

I fixed the issue with the confirmation dialog.
The crash after game over is caused by a buffer underwrite bug in the software renderer of the game (it attempts to write in the pixel row just above the locked render target surface). I don't see a good way to fix it from DDrawCompat. It's better to use the hardware renderer instead.
Of course, the hardware renderer doesn't work natively either because of another bug in the game. When enumerating Direct3D devices, it attempt to check if the hardware supports bilinear texture filtering. It's supposed to look for the D3DPTFILTERCAPS_LINEAR flag in the dwTextureFilterCaps member of the D3DPRIMCAPS struct, but it mistakenly looks for it in the dwTextureCaps member instead, where the same constant value actually means D3DPTEXTURECAPS_POW2. The latter is likely only set on some really ancient GPUs.
This bug can be fixed by applying a small hex edit to the executable. Replace this pattern:
F6 43 5C 02 75 0F
with this one:
F6 43 60 02 75 0F
This will correct the offset of the data member that is checked within D3DPRIMCAPS (from 5C=dwTextureCaps to 60=dwTextureFilterCaps).
Supposedly both bugs are fixed already in the GOG release.

I fixed the issue with the confirmation dialog.
The crash after game over is caused by a buffer underwrite bug in the software renderer of the game (it attempts to write in the pixel row just above the locked render target surface). I don't see a good way to fix it from DDrawCompat. It's better to use the hardware renderer instead.
Of course, the hardware renderer doesn't work natively either because of another bug in the game. When enumerating Direct3D devices, it attempt to check if the hardware supports bilinear texture filtering. It's supposed to look for the D3DPTFILTERCAPS_LINEAR flag in the dwTextureFilterCaps member of the D3DPRIMCAPS struct, but it mistakenly looks for it in the dwTextureCaps member instead, where the same constant value actually means D3DPTEXTURECAPS_POW2. The latter is likely only set on some really ancient GPUs.
This bug can be fixed by applying a small hex edit to the executable. Replace this pattern:
F6 43 5C 02 75 0F
with this one:
F6 43 60 02 75 0F
This will correct the offset of the data member that is checked within D3DPRIMCAPS (from 5C=dwTextureCaps to 60=dwTextureFilterCaps).
Supposedly both bugs are fixed already in the GOG release.


NIFI-1047 Added additional method to get processId, fixed tools.jar path for cygwin

This makes shutdown work in cywin, but not for the right reason.


Catalog tools can access Kubefirst env vars during install

What is your feature idea?
Allow for the templates in the Catalog to reference env vars that Kubefirst knows by default. In specific, accessing the Git username / org.
Why is it needed?
This builds off of https://github.com/kubefirst/kubefirst/issues/1711 which enables the catalog tool to leverage the kubefirst Git repo. In this case, the tool (kratix) leans on GitOps and requires an Application that points at the Kubefirst repo. Right now, I am not sure how to enable this without hard coding the username for the repo.
Is this missing feature preventing you from using kubefirst?

[ ] Yes

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for the idea @abangser. As discussed on our Slack community, not sure when we'll be able to prioritize this, but I think it's a good feature idea.


Server should return an error if the user tries to write uint64

We don't support uint64. If a value overflows what can be represented with an int64, we should return an error.

Pretty sure we return an error now if there is an overflow.


Adds efficientnet2 presets

Adds these variants:
efficientnet2_rw_m_agc_imagenet
efficientnet2_rw_s_ra2_imagenet
efficientnet2_rw_t_ra2_imagenet

Branched from Edge Presets: https://github.com/keras-team/keras-hub/pull/1976
Can just merge this one and close that one or merge that one first for more modularity.

I should note I'm noticing a different prediction for one variant:
python tools/checkpoint_conversion/convert_efficientnet_checkpoints.py --preset efficientnet2_rw_s_ra2_imagenet
✅ Loaded TIMM model.
I1121 13:45:18.860764<PHONE_NUMBER> _builder.py:196] Loading pretrained weights from Hugging Face hub (timm/efficientnetv2_rw_s.ra2_in1k)
I1121 13:45:19.120539<PHONE_NUMBER> _hub.py:184] [timm/efficientnetv2_rw_s.ra2_in1k] Safe alternative available for 'pytorch_model.bin' (as 'model.safetensors'). Loading weights using safetensors.
✅ Loaded KerasHub model.
1/1 ━━━━━━━━━━━━━━━━━━━━ 2s 2s/step
🔶 Keras output: [-0.575618   -0.4144789  -0.73163635 -0.8395867  -0.5637497   0.87436163
 -1.3687949  -0.1337489  -0.0662252   0.01332632]
🔶 TIMM output: [-0.7259099   0.3929606  -0.05580516  0.11954936  0.02080455  0.996287
  0.3669875   0.5366461   0.01827425 -0.37024903]
🔶 Keras label: 349
🔶 TIMM label: 345
🔶 Modeling difference: 0.52596486
🔶 Preprocessing difference: 0.0044535464
🏁 Preset saved to ./efficientnet2_rw_s_ra2_imagenet

Which I'm looking into

@pkgoogle thanks! Yeah a different label and that level of different output floats worth looking at!

Should be good now:
python tools/checkpoint_conversion/convert_efficientnet_checkpoints.py     --preset efficientnet2_rw_s_ra2_imagenet
✅ Loaded TIMM model.
I1125 14:46:30.043703<PHONE_NUMBER> _builder.py:196] Loading pretrained weights from Hugging Face hub (timm/efficientnetv2_rw_s.ra2_in1k)
I1125 14:46:30.252438<PHONE_NUMBER> _hub.py:184] [timm/efficientnetv2_rw_s.ra2_in1k] Safe alternative available for 'pytorch_model.bin' (as 'model.safetensors'). Loading weights using safetensors.
✅ Loaded KerasHub model.
1/1 ━━━━━━━━━━━━━━━━━━━━ 1s 1s/step
🔶 Keras output: [-0.37625     0.6832866   0.28495154  0.5878901   0.20605645  1.0627874
  0.40687525  0.40137056 -0.118939   -0.30322495]
🔶 TIMM output: [-0.7259099   0.3929606  -0.05580516  0.11954936  0.02080455  0.996287
  0.3669875   0.5366461   0.01827425 -0.37024903]
🔶 Keras label: 345
🔶 TIMM label: 345
🔶 Modeling difference: 0.15455398
🔶 Preprocessing difference: 0.0044535464
🏁 Preset saved to ./efficientnet2_rw_s_ra2_imagenet

Remaining CI/CD failure appears unrelated to this PR.


Resend email confirmation Token for verifying registration

Is your feature request related to a problem? Please describe.
A user cannot request a new confirmation email after the initial one expired.
Describe the solution you'd like
An endpoint that will resend an email confirmation

Simply call the same endpoint

Simply call the same endpoint

Assume the mail does not deliver, If I request a new token using same endpoint, I get an error.

Okay, this should be a bug rather than a feature

Hi @rammyblog, I'd like to resend email confirmation Token manually. What are the params I need to pass to the endpoint
I have this payload
{
  "clientBaseUrl": "string",
  "tokenParamName": "string",
  "emailParamName": "string",
  "email": "string"
}


[Bug]: Border select not work

What happened?
The selection border is not working. I've tried several ways and couldn't get it to work. Could something be missing from the documentation?

How to reproduce the bug
"filament/filament": "^3.1",
"php": "^8.1",
Package Version
1.2
PHP Version
8.2
Laravel Version
11.0
Which operating systems does with happen with?
Linux
Notes
No response

Hi @a21ns1g4ts  did you create a custom theme and add the view in the tailwind config? Installtion

@199ocero Is there another way where you don't need to do this? I'm not sure if this is really something worth depending on. I haven't looked at your implementation, so I can't judge it well. But if I have some time, I can check if there's a way to make it work without relying on using a custom theme. If you've already tried to solve this and couldn't due to some limitation, could you let me know?

Unfortunately @a21ns1g4ts  this is the only way for now to be able to render the styles of the component even the big plugins in Filament they all use custom theme.


mrcnn.py error

Traceback (most recent call last):
File "/home/wgs/medicaldetectiontoolkit/exec.py", line 167, in
train(logger)
File "/home/wgs/medicaldetectiontoolkit/exec.py", line 69, in train
results_dict = net.train_forward(batch)
File "models/mrcnn.py", line 873, in train_forward
rpn_class_logits, rpn_pred_deltas, proposal_boxes, detections, detection_masks = self.forward(img)
File "models/mrcnn.py", line 990, in forward
fpn_outs = self.fpn(img)
File "/home/wgs/medicaldetectiontoolkit/venv/lib/python3.6/site-packages/torch/nn/modules/module.py", line 477, in call
result = self.forward(*input, **kwargs)
File "models/backbone.py", line 153, in forward
p2_pre_out = self.P2_conv1(c2_out) + F.interpolate(p3_pre_out, scale_factor=2)
RuntimeError: The size of tensor a (39) must match the size of tensor b (40) at non-singleton dimension 3

your input shape needs to be divisible by 2**n, where n is the number of pooling operations in your network. Please adjust your input shape accordingly. i will add a  warning to catch this mistake.


feat: add option to convert string values to numeric values

Inherently there's no data types in a csv, so when each csv row in parsed into a csv object numeric values end up as string values. It would be nice to have an option to convert to numeric values when possible. See: https://www.npmjs.com/package/csvtojson#field-type

We could consider that. Related to your issue, @mafintosh said that maybe adding a map option that intercepts each row might be an option. Otherwise I doing a transform stream is probably your best bet for now

I think a separate transform stream should be the standard way to handle this - doing the conversion within csv-parser shouldn't offer any improvement in performance, and just adds bloat/complexity to the package for everyone who doesn't need number type conversion.
If this is a common problem that you run into, you can even make a package dedicated to streaming type conversions, and then require that:
process.stdin
  .pipe(csv(args))
  .pipe(castStringsToNumbers('numericFieldOne', 'numericFieldTwo'))

Plus, for the CLI you can always do JSON manipulation with jq, like: cat data.csv | csv-parser | jq ".numericFieldOne |= tonumber | .numericFieldTwo |= tonumber" (to parse a CSV and convert the numericFieldOne & numericFieldTwo fields to numbers)

mapValues should work for this now. It's not documented on the README, but will be for the 2.0 update.
{
  mapValues: (value) => {
    return isNaN(value) ? value : Number(value)
  }
}


🧽  Cleanup the git repository

We have a few very big (~70MB) objects in the repo:
100644 blob 6c02eb80dc21f77dcaff356cbe9279a0a70285b3 77003153	apollo-sample/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob 6c02eb80dc21f77dcaff356cbe9279a0a70285b3 77003153	apollo-gradle-plugin/src/test/testProject/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob 265a9168fbd07fbc1dae2b5a55c1f7a25c198a4a 76999383	apollo-sample/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob c6ce3d683e6c8d9b96d9ffd5eb34b76fa7f79b1c 76999359	apollo-gradle-plugin/src/test/testProject/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob 49d21e24ff27c2e570a02715857d9dfb6a6f2fe9 76970254	apollo-sample/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob 0088488e8e2b910a431f614d537b220c97795ff7 76961769	apollo-sample/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar
100644 blob f57b1935417c0c0993825572501bee72741a7c4a 76961753	apollo-sample/libs/apollo-gradle-plugin-0.0.1-SNAPSHOT-all.jar

Everything works and no one ever complained about this to my knowledge. But still it's a bit annoying. The problem is that removing them will require rewriting the history.
I'm opening this issue so that we remember this and can gather feedback whether we want to rewrite the history or keep things as is.

While it might not be an issue for contributors (it's relatively easy to rebase an existing pull request), it's an issue for links. Is someone made a permalink to a file, rewriting the history will lose that link forever 😢

Closing. Breaking links is not cool. If we want to remove those, we'll have to create a new git repository.


Use more github actions as checks

This updates the CI integration for some cool cargo checks via the actions-rs repositories:

cargo clippy for nice annotations on the commit. (No annotations on the PR, as there are token permission issues: https://github.com/actions-rs/clippy-check/issues/2)
cargo audit for security checks.

Thanks to the this blog post for pointing me to those.

bors r+


Sign Out feature

Backend

https://github.com/Real-Dev-Squad/website-backend/issues/683

Issue

User is unable to sign out.

Changes in the backend

Add a route to sign out
Clear session cookies

Changes required in Front-end

In the navbar add a dropdown for member and signout.

Updated my main comment to incorporate link of the issue created in front end.

Added a link to the front-end PR for this feature.

Closing the issue as the PR for both front end and back end are merged.

Changes merged to prod


Web ant93 release: Updating API version to 2021-01-01

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[X] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@weidongxu-microsoft  Can you please help figure out why 'Swagger SDK Breaking Change Tracking' is failing? We have the suppressions in place.

@naveedaz @JennyLawrance
Would you let me know whether all commit in this PR is ARM reviewed?

@naveedaz
"Swagger SDK Breaking Change Tracking" is a new way to group breaking changes found in SDK.
@msyyc Let us know if python breaking changes is expected or not. I might need to try for Java as well.

No breaking change to Java. Test PR https://github.com/Azure/azure-sdk-for-java/pull/21704

@msyyc Please help us figure out what needs to be done for python here.

@naveedaz @JennyLawrance
Would you let me know whether all commits in this PR is ARM reviewed (in dev branch)?

@weidongxu-microsoft , Yes the PRs are ARM reviewed.

For python, the breaking change is expected.


reduces number of voice selection in web page read aloud

Reduces number of Cloud Text to Speech Voices in Creative Studio > Webpage's Read Aloud picklist

Approved, LGTM.


Remove unnecessary comma.

[x] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Proposed changes
Response JSON has invalid comma, so I removed it.
Checklist

[x] I have read the contribution guidelines
[x] For non-bugfix PRs, I have discussed this change on the mailing list/slack team.
[ ] I have run grunt to verify the unit tests pass
[ ] I have added suitable unit tests to cover the new/changed functionality

Coverage remained the same at 77.534% when pulling faf87004f84f27779752c41c86d72db39d5f2ab3 on ryoichi-obara:improve-help-text into f75dd2209d51d7cad39586f3ace999241e9f69f0 on node-red:master.


Breaking change in v0.10.4

[x] I have looked for existing issues (including closed) about this

Bug Report
Version
tower-sessions = "=0.10.4"

Platform
Linux a1fc3b8591b7 5.15.0-97-generic #107-Ubuntu SMP Wed Feb 7 13:26:48 UTC 2024 x86_64 GNU/Linux

Crates
tower-sessions
Description
The following code compiles with tower-sessions 0.10.2 but not with 0.10.4. It might be related to #160.
use tower_sessions::{MemoryStore, SessionManagerLayer};

fn create_layer(cookie_name: String) -> SessionManagerLayer<MemoryStore> {
    let session_store = MemoryStore::default();
    SessionManagerLayer::new(session_store).with_name(&cookie_name)
}

fn main() {
    create_layer("cookie_foo".to_string());
}

error[E0597]: `cookie_name` does not live long enough
 --> src/main.rs:5:55
  |
3 | fn create_layer(cookie_name: String) -> SessionManagerLayer<MemoryStore> {
  |                 ----------- binding `cookie_name` declared here
4 |     let session_store = MemoryStore::default();
5 |     SessionManagerLayer::new(session_store).with_name(&cookie_name)
  |     --------------------------------------------------^^^^^^^^^^^^-
  |     |                                                 |
  |     |                                                 borrowed value does not live long enough
  |     argument requires that `cookie_name` is borrowed for `'static`
6 | }
  | - `cookie_name` dropped here while still borrowed

Unfortunately the reason this worked before is because the method allocated via to_string internally (not so great obviously). The changes in 0.10.4 make it so either a stack or heap allocated value may be used and indeed a &str may be used here. It seems the issue you're running into is that 0.10.4 made the lifetime static. Ultimately we do want the config to be static because we don't want to allocate for what is a constant set of values over the lifetime of the program. Needless to say we do not want to break SemVer (altho it's not clear how to avoid that given the prior release also broke SemVer).

IMHO it's impossible to make the config static without requiring the argument of with_name to be static.

I agree. That means we can yank 0.10.4 and republish as 0.11. I don't think there's much else that can be done. If there's a larger problem with that API, with your specific use case, please let me know.

This is resolved via yanking 0.10.4 and publishing 0.11.0. Thanks for reporting it!


[bug]: stacked create app does not work on Windows

Describe the bug
stacked create app does not generate necessary files, for example app folder or stacked.json.
Also behave differently when app name is string vs number ( eg: "my_first_app" vs "123").
What operating system do you use?
Windows
Information about the installed tooling
Flutter version 3.24.3
Steps to reproduce the issue
Powershell Log and Project generated for stacked create app my_first_app

For stacked create app 123

Expected behavior
No response
Screenshots
No response
Additional Context
No response

did you find any solution

No

I faced the same issue after upgrading Android Studio [to 2024.2.1] and JDK [to 23]. My issue was the Gradle incompatibility with the JDK.
Try running the native "futter create" command (without running "stacked create app"), you shall see a warning with all the details.
What I did was uninstalling the JDK 23 and set the Flutter JDK directory manually. (flutter config --jdk-dir=<JDK_DIRECTORY>). This resolved my issue.
I'm not an expert in this area, for me it seems, due to the warning, stacked cli cannot move forward with template creation.

@gayankrish That fixed it. Thanks a lot!


feature/add in materialize package

Thanks, Amy! Nikhil is giving the utils package some more love, in the meantime. 🤠


morphing API changes

we add support of the offset parameter when setting a morph target. This is made possible by using the new push-constants feature
we deprecate the old morphing api that allowed a morph target buffer per primitive. the new API is currently implemented on top of the old one.

I'm converting this to draft because this breaks morphing on metal because it looks like we're running out of argument buffers.


[Question] Roadmap / release cycle

Hi Folks,
Very interested in the longhorn project - wondering what sort of release cycles you're working with, and when the roadmap for 1.0 GA and production level workloads is anticipated?

That's fantastic, thanks! When can we expect 1.0 to be released, roughly?

We've just released v1.0.0. Give it a try. :)


Failed thumbnail video optimization snackbar message

Bug Description
If poster fails to generate and then the video optimization fails, the snackbar message looks broken.
Expected Behaviour

Steps to Reproduce

Screenshots

Additional Context

Plugin Version:
WordPress Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Added in https://github.com/google/web-stories-wp/pull/8079. CC @embarks

If you inspect the element in the dev tools, what's the image being displayed?
I see two things we can optimize here:
https://github.com/google/web-stories-wp/blob/42b3d4249feedcd08a52bb6d0a9aa305e82df6d7/assets/src/edit-story/app/media/useUploadMedia.js#L169-L172

Check if src actually exists
Add isBlobURL checks

So it could look like this:

const thumbnailSrc = ['video', 'gif'].includes(resource.type) ? resource.poster : resource.src;

// ...

thumbnail: thumbnailSrc && !isBlobURL(thumbnailSrc) && {
  src: thumbnailSrc,
  alt: resource?.alt,
},

No the poster seems undefined.
It also seems to generate some warnings and errors.

I forced an error after transcoding to see what happened. Here is a screenshot of it in action.

At this point in the code, the only poster image will be a blob.

The blob URLs of failed uploads will be revoked using revokeBlob / revokeObjectURL, so they would not work anymore.

^ But this example works?

Looks like there's a missing revokeBlob call in removeItem() in useMediaUploadQueue then. That should be added to ensure proper cleanup.
But yeah I suppose if we remove the isBlobURL check for now this can be simplified like this:
const thumbnailSrc = ['video', 'gif'].includes(resource.type) ? resource.poster : resource.src;

// ...

thumbnail: thumbnailSrc && {
  src: thumbnailSrc,
  alt: resource?.alt,
},


fix: watch out for heartbeat wraparound

Fix for possible heartbeat wrap-around in very long running processes (e.g LSP perhaps?)  See discussion: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/heartbeats.2C.20GMP.20vs.20no.20GMP

There is no wrap-around issue being reported in the linked thread.

g_heap is thread local. There is no issue here. I am closing the PR


Remove Warning message when creating a new track in Animation window

In my opinion there's no reason why you would give a warning message every time you want to create a new track in your animation. As a graphics guy doing a lot of animations this warning message becomes really annoying. It's like asking in Photoshop "if you really want to create a new layer."
If you accidentally hit the wrong key button when setting a keyframe, then you can easily remove the track from the animation, so it's hard to see the need for the warning message.

Just to be sure: You mean messages like "Create NEW track for property 'funny_balls' and insert key?"?

@RayKoopa - Thanks! We didn't know about this option, it works perfectly :)

The question is, does this setting make sense or should it just default to no warning?

In my opinion there shouldn't be a warning. As I stated earlier It's almost like asking in Photoshop "if you really want to create a new layer." And that would drive any artist insane in minutes.

I agree that no warnings should be produced for this one (and I don't think we should keep the settings)

I don't think the warning is wrong or counterproductive (it's only shown
once) and i found it often avoids mistakes for first time users. I think it
would probably be best to add a button like "disable this warning" you can
click once you know what goes on.
On Thu, Jan 26, 2017 at 11:04 AM, Bojidar Marinov<EMAIL_ADDRESS>wrote:

I agree that no warnings should be produced for this one (and I don't
think we should keep the settings)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/7448#issuecomment-275395347,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z28VHPvxiUvJgBju4OPwmW8pKisDLks5rWKf8gaJpZM4Lctqo
.

I will make my own editor. Without warnings but hookers and blackjack
😆

@reduz - That's not a bad idea :)


Upgrade echarts.js version to 4.2.1

Current version have more bug,  Upgrade echarts.js version to 4.2.1

谢谢，版本已经更新过了


Add MD5 Checksum to Request Header and queryparameter

It would be nice, if there were the possibility to pass a md5 checksum with the file.
The Client would need to calculate the md5 checksum for the file himself and add it to the request.
As soon as the header/queryparameter is present, the very-simple-upload-server would calculate the md5 checksum and compare with the given one from the request.
If the checksum isn't the same, the server could delete the file, because it may be corrupted or cut off.
That would be nice (. ❛ ᴗ ❛.)

Implemented with Digest header in version 1.3.0


Prevent exhausted generators causing a panic

Calling next() on a generator with no more values to yield should always return null, in line with what happens for normal iterators.
Prior to this patch, attempting to consume a value from an exhausted generator (that is, one for which next() has already returned null) would result in a runtime panic due to the call stack being empty when invoking execute_instructions() from within continue_running().

@edenbynever Thanks so much for the fix!

@edenbynever FYI I've implemented a visible error message for the playground in case of a panic, so hopefully if this happens again you'll have an easier time.


Sort frames during project dumping

Motivation and context
When we export a task or project in CVAT format our code uses the group_by_frame function. For tasks and for projects behaviour of this function is different since for tasks we perform sorting frames but for projects we don't. As a result, we can have a situation when our annotation file for the project will have a list of images in unsorted form. So this PR adds sorting frames during project export as well.
How has this been tested?

Checklist

[ ] I submit my changes into the develop branch
[ ] I have added a description of my changes into the CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

Hi, do you know if we can add a test reproducing the problem? From what I see, the problem is related to how the frame data is returned from DB, and it can be unreliable.

Hi, do you know if we can add a test reproducing the problem? From what I see, the problem is related to how the frame data is returned from DB, and it can be unreliable.

This problem is hard to reproduce due to the reason that you mentioned, so I don't know how it can be tested.


Change arm-none-eabi-gdb to gdb-multiarch

On Ubuntu from 18.04 it seems that arm-none-eabi-gdb is now replaced with gdb-multiarch and then gdb is used to perform debugging. https://rust-embedded.github.io/book/intro/install/linux.html seems to indicate this might not apply to all distributions though. A gdb-multiarch package does exist in the AUR (https://aur.archlinux.org/packages/gdb-multiarch/), and I'm unable to access the fedora website to check.

Since this seems to depend on the distribution, would it be better to have something like "use arm-none-eabi-gdb or gdb-multiarch depending on what is easiest to install"?

Since this seems to depend on the distribution, would it be better to have something like "use arm-none-eabi-gdb or gdb-multiarch depending on what is easiest to install"?

For README.md this would make sense, and be documented appropriately.
For .cargo/config I assume we have to have one value for the runner, and I think given the more widespread usage of Debian/Ubuntu based distributions I would suggest it being gdb-multiarch.

Yea, that sounds very reasonable! Would you mind updating the PR with that change?

Perfect, thanks a lot!


Convert Scrapy Spider to new pipeline: canada_montreal

https://github.com/open-contracting/kingfisher-scrape/issues/118

 Kingfisher Canada Scraper


github rate limit checker - sleep

Description
GitHub version of https://github.com/dockstore/dockstore/pull/5313 with similar trade-offs. Builds will apparently hang, but will wait for API quota to re-generate (they actually wait till when github predicts that quota will be back). This may lead to a more equitable distribution of quota during testing (i.e. ideally, less quota consumed by jobs that ultimately fail)
We will likely want to disable this in production as with the bitbucket counterpart? (To be discussed, PR is https://github.com/dockstore/dockstore/pull/5348)
Review Instructions
Should function normally for most part. Builds will apparently hang and unfortunately, circle ci kills builds waiting for more than ten minutes. But at least you won't be worse off than before (manually waiting to retrigger builds) and have the opportunity for circle ci to cancel repeated builds as well.
You could theoretically check this out and watch the RateLimitChecker sleep when we reach rate limit (which is how I manually tested this)
Issue
TBD
Security
None
Please make sure that you've checked the following before submitting your pull request. Thanks!

[x] Check that you pass the basic style checks and unit tests by running mvn clean install
[x] Ensure that the PR targets the correct branch. Check the milestone or fix version of the ticket.
[x] Follow the existing JPA patterns for queries, using named parameters, to avoid SQL injection
[x] If you are changing dependencies, check the Snyk status check or the dashboard to ensure you are not introducing new high/critical vulnerabilities
[x] Assume that inputs to the API can be malicious, and sanitize and/or check for Denial of Service type values, e.g., massive sizes
[x] Do not serve user-uploaded binary images through the Dockstore API
[x] Ensure that endpoints that only allow privileged access enforce that with the @RolesAllowed annotation
[x] Do not create cookies, although this may change in the future
[x] If this PR is for a user-facing feature, create and link a documentation ticket for this feature (usually in the same milestone as the linked issue). Style points if you create a documentation PR directly and link that instead.

If a CircleCI run gets rate limited, and the CircleCI "no output" limit kicks in, how long does it take for the run to fail in this PR? 10 minutes more than the current setup?

Hmmm,
Rewording, if the 10 minute limit no output check is reached, a job is killed immediately. This isn't changed in this PR.
However, in the past a job would throw an exception and fail immediately (in which case, a developer would need to manually restart or give-up). After this PR, the job will continue on and wait. If it waits for more than ten minutes, it will be killed, but if the regeneration time is in less than ten minutes it should be able to pick-up where it left off.

If a CircleCI run gets rate limited, and the CircleCI "no output" limit kicks in, how long does it take for the run to fail in this PR? 10 minutes more than the current setup?

Hmmm,
Rewording, if the 10 minute limit no output check is reached, a job is killed immediately. This isn't changed in this PR.
However, in the past a job would throw an exception and fail immediately (in which case, a developer would need to manually restart or give-up). After this PR, the job will continue on and wait. If it waits for more than ten minutes, it will be killed, but if the regeneration time is in less than ten minutes it should be able to pick-up where it left off.

Yeah, I was concerned that this change might cause the rate-limited tests to take substantially longer to fail completely.  So I ran quick experiment, in which I set the sleep limit to an enormous amount to make all the tests perpetually rate-limited: https://app.circleci.com/pipelines/github/dockstore/dockstore/9294
It didn't make much difference, yay!


CellMeasurer should account for scrollbar size

Refer to issue #338 or jump to this comment.
Essentially the problem is that CellMeasurer renders outside of the context of the eventual parent List or Grid and so it doesn't account for the amount of space that will be taken up by a scrollbar (if one is used).

If I had written CellMeasurer when I first created react-virtualized, I would have designed things slightly differently. However CellMeasurer was added several months later and as such, has some constraints imposed by the existing design. These constraints make it hard for me to envision a solution for this problem.
Grid requires some size metadata about the underlying collection it is displaying in order to render itself. Unfortunately the cells in this case also partially depend on Grids rendering. The scrollbar appears or disappears based on the size and number of the cells (but in this case the cell size is also dependent on the presence of a scrollbar).
Not sure of a solution yet. Will have to leave this issue open and give it more thought.

I would happily accept a solution where the scrollbar is always visible via overflow-y: scroll, meaning CellMeasurer measures as if the scrollbar is always present. A grayed-out scrollbar next to a short list is totally acceptable for us. Thoughts?

Hmm, interesting suggestion. I wonder initially if everyone would share that same point of view. I'd be a little reluctant to just assume it.

Just ran into / noticed this issue on a project. How could the scrollbar calculate much space to take up without going through all of the data to determine all widths of all columns?
The main issue for me is that the mouse position becomes unaligned with the scrollbar and it's not possible to scroll to the end of the data when dealing with a large number of columns. For me it would be okay, if the scrollbar got smaller as it continues to calculate how much left is scrollable as the user is able to continue dragging all the way to the end. Would it be possible to modify the mouse position as the user scrolls to account for the difference?
You can see this on the demo if you scroll to the right on one long drag you won't be able to get to the end:
https://bvaughn.github.io/react-virtualized/#/components/CellMeasurer

How could the scrollbar calculate how much space to take up without going through all of the data to determine the widths of all columns?

You're thinking of the length of the scrollbar (eg vertical scrollbar height). This issue is referring to its thickness (eg vertical scrollbar width).

Would it be possible to modify the mouse position as the user scrolls to account for the difference?

No. This would interfere with and stop the browser's scroll animation.

You can see this on the demo if you scroll to the right on one long drag you won't be able to get to the end

This is just a limitation of deferred measurement, which is itself a very important performance optimization. I agree it's not ideal but I think it's well worth the performance trade-offs given that this library is all about performance. 😄

If I'm understanding this issue correctly I'm having this issue, too (i.e. scrollbars covering cell content on non-scrollbar-auto-hidden platforms like os x). I wonder if it wouldn't be simplest to detect always visible scrollbars, and than increase the Grid (or decress the available cell area) by the scrollbar width?

As a hacky workaround, I've added this to my Grid for now:
const isWindows = window.navigator.platform.toUpperCase().indexOf('WIN') > -1
...
height={height + (isWindows ? 20 : 0)}

I have been thinking more about the idea of calculating width as if a scrollbar is always present. react-virtualized is a windowing solution, which means that the majority use case targets containers with scrollbars. It feels pretty reasonable to assume that a scrollbar will be present because if there was no need for a scrollbar, there would be no need for react-virtualized either. When the list of items is too short to require a windowing solution, then windowing solutions don't add value.
The exception would be when the virtualized component doesn't manage its own scrollbar -- when rendering to the body for instance.
Thoughts?

I generally agree with this statement for vertical scrollbars, but what about horizontal? Grid can window in either direction, but I have used RV in applications where Grids often contain a wide range of columns (many, not many, etc).

targets containers with scrollbars

While this may be true for desktop Windows users, this not the case for Mac and mobile platforms. On those platforms, the scrollbar actually does not take up space and floats on top of the content while scrolling and hides when not. Hence, always adding the scrollbar width to the Grid seems like it would fix some platforms (WIndows), but break other platforms. (which is why my workaround above targets windows specifically)

While this may be true for desktop Windows users, this not the case for Mac and mobile platforms. On those platforms, the scrollbar actually does not take up space and floats on top of the content while scrolling and hides when not.

I recently found out it's a little more complicated than that... there's a setting on Macs to always show the scroll bars. In Settings, search for "scroll bar behavior".

True, which is whybos-specifc code isn't a good idea. See my comment (above)[https://github.com/bvaughn/react-virtualized/issues/401#issuecomment-258822982] for scrollbar detection code

Yup, OS X further complicates matters but hiding scrollbars by default. :|
I think scrolling/scrollbars are one of the most difficult remaining UI challenges in the browser (not counting things like fancy 3d game engines or what-not).

This is an interesting discussion!
@bvaughn Good point! I wasn't thinking about horizontal scrollbars and Grids since my use case is accomplished with a List.
@mbrevda The scrollbar width detection techniques that I know of would return 0 for the scrollbar width on mobile and OS X. In those cases, subtracting the scrollbar width from the cell size wouldn't change anything since the scrollbar width would be 0. I believe this technique would also return the right answer when the "Always show scroll bars" setting is chosen in OS X, though I don't have an easy way to test that right now.
Is it accurate to say that this issue only applies to environments where the scrollbar takes up layout space? We are seeing this issue on our sites. It doesn't create any serious problems for us -- just some visual artifacts that I would prefer to avoid if possible.

Detecting the scrollbar width/height is doable. The problem here is that-
at the time a cell is measured- CellMeasurer has no way of knowing if it
will need to take horizontal or vertical scrollbar size into account.
What's more, that may change if the Grid/List is resized or the data is
filtered.
It's actually kind of complex. We don't want to measure/remeasure each time
resizing happens, and I'd prefer not to measure all possible combinations
of scrollbar/no scrollbars.

CellMeasurer has no way of knowing if it
will need to take horizontal or vertical scrollbar size into account

Im not sure CellMeasurer would need to know about scrollbars. It would seem that only Grid (or whatever container) would have to know, no?

Sorry, that was poor wording on my part. My attention has been spread too thin lately and that was an email reply from my phone (as the awkward formatting hints at). Replace CellMeasurer with Grid above and the message fits.
CellMeasurer measures things like height based on width. The absence or presence of a scrollbar impacts width on certain browsers and so it potentially impacts height. Similarly the height of children determines the need for a vertical scrollbar. The 2 are related.
Let's say we're measuring the height of columns in row index 0. At this time Grid does not know if it needs a vertical scrollbar. Let's say we continue measuring columns until we reach row X at which point we know we do need a vertical scrollbar. Currently this means our measurements from row 0 to X are now potentially (but not necessarily) invalid.
As was mentioned above, we could assume the presence of a vertical scrollbar always which would handle most use-cases correctly. The same problem exists for measuring width though with regard to a horizontal scrollbar. This is probably a much less common concern but I'm not sure it's fair to always assume the presence of a horizontal scrollbar. I think it's less clear cut in this case.
Currently...I would lean towards always assuming the presence of a vertical scrollbar and never assuming the presence of a horizontal one but the latter seems kind of arbitrary and I'm uncertain how I feel about it.

Happy to say that the re-written CellMeasurer in version 9.0.0 fixes this long-standing issue.

Cool! Can you explain how in a line or two?
On Mon, Mar 6, 2017, 8:02 AM Brian Vaughn<EMAIL_ADDRESS>wrote:

Happy to say that the re-written CellMeasurer in version 9.0.0 fixes this
long-standing issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bvaughn/react-virtualized/issues/401#issuecomment-284310209,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR4jFThYzoIWG88lh7CxSjn7pywty62ks5ri6GHgaJpZM4KAz56
.

From the issue description:

Essentially the problem is that CellMeasurer renders outside of the context of the eventual parent List or Grid and so it doesn't account for the amount of space that will be taken up by a scrollbar (if one is used).

CellMeasurer renders in the Grid (or List) now. The old repro (the chat app) no longer repros so...unless I hear differently or see a different bug manifestation, I think it's fixed.

Sweet! Thanks!
On Mon, Mar 6, 2017, 8:10 AM Brian Vaughn<EMAIL_ADDRESS>wrote:

From the issue description:
Essentially the problem is that CellMeasurer renders outside of the
context of the eventual parent List or Grid and so it doesn't account for
the amount of space that will be taken up by a scrollbar (if one is used).
CellMeasurer renders in the Grid (or List) now. The old repro (the chat
app) no longer repros so...unless I hear differently or see a different bug
manifestation, I think it's fixed.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bvaughn/react-virtualized/issues/401#issuecomment-284311072,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR4jLKAc3w2ml-2HoV6eJwz_QB5-Ba4ks5ri6NDgaJpZM4KAz56
.

I still can see this problem in firefox, react-virtualized version 9.21.

Issue observed only in Firefox: If the number of rows * defaultHeight < the height of the list Cell Measurer considers that there is no scoll bar. When the calculations are done, the actual height of the all rows > the list height. That results in having a scrollbar width what affect flex children and changes the row height, eventually producing row overlaps.
cellMeasurerCache = new CellMeasurerCache({
    defaultHeight: window.innerHeight,

fixes the problem.


Webchat opens onto skill, not root bot

Describe the bug
Web chat opens onto skill, not root bot
Version
1.3.1-nightly.219396
Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[X] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:
1, Create a new bot (an empty one, in my sample)
2. Add a skill (I used the standard EchoBot)
3. Start the bots; both of them should start (so you'll see "2/2 running" in the status bar)
4. Open chat
5. The chat will open to the skill, not the root bot (although the title retains the root bot's name)
Expected behavior
Connecting to webchat should start in the root bot, not a skill.
Screenshots

Additional context

@beyackle This is by design for R12. We explored the option but it required more sophisticated UI with multiple tabs in the webchat pane each tab corresponding to a conversation id that could be tied to root bot or skill. This is definitely on the cards once we implement the popout pane for webchat control.

@srinaath Looking at the comments above it appears that webchat is talking to the skill and not the root bot? We should be just surfacing the root bot in R12.  @beyackle can you clarify here?  Were you able to interact with the skill?

I see. Nice catch @beyackle. I will try to get a repro.


After reinitializing a cache from localStorage, info().size returns 0

if the cache needs to reinitialize from local storage, lets say 10 items: cache.keys().length === 10 but cache.info().size === 0. During setStorageMode the $$lruHeap should be initialized, right?

Yes, this is a bug.

i can fix it tomorrow if you like and send a pr

This is somewhat of an involved fix, because right now the $$exiresHeap isn't getting initialized either. I'm planning to fix it on Saturday when I finally have internet at my house.

ok

On 17 Sep 2015, at 22:27, Jason Dobry<EMAIL_ADDRESS>wrote:
This is somewhat of an involved fix, because right now the $$exiresHeap isn't getting initialized either. I'm planning to fix it on Saturday when I finally have internet at my house.
—
Reply to this email directly or view it on GitHub https://github.com/jmdobry/CacheFactory/issues/1#issuecomment-141197095.


fix typo for hide_const usage result printout

Given this is a read me I'm not sure it's really a typo but I think it could help alleviate some confusion so thanks :)

my pleasure :+1:


Render empty table will crash the WW editor

Describe the bug
The return rows may be an empty array in https://github.com/nhn/tui.editor/blob/65c4983a2721729d36e1986d05b17ad30ab87e7c/apps/editor/src/wysiwyg/nodes/tableBody.ts#L23
So if you input

 (which is a valid embedded HTML markdown) will cause Cannot read properties of undefined exception.
To Reproduce
see this sample
https://codesandbox.io/s/toast-ui-editor-empty-table-bug-z0hxjk
Expected behavior
Render empty table or keep empty line.
Screenshots

Desktop (please complete the following information):

OS: [Win10 Pro]
Browser [Edge]
Version [3.2.0]

@gitpaladin Thank you for the issue and your contribution. I'll check it soon.


Uncaught TypeError: Cannot read property 'classList' of null

At some point it starts logging "Uncaught TypeError: Cannot read property 'classList' of null" and it becomes impossible to complete the turn. Sometimes it shows hideMoves and dropPiece in log:
Uncaught TypeError: Cannot read property 'classList' of null scripts.min.js:1
hideMoves
dropPiece

Here I wasn’t able to move the black king:

Chrome 23.0.1271.95 @ Windows 7

7 years too late but we actually found the issue #9 . Chess.js returns some strange data sometimes, which causes the valid moves to not be functional either when it happens.


Add badge support to navigation and sidebar

Option to add badges in navigation and sidebar.
Do you want to highlight a link to a new page, a link to a beta feature, or any other purpose?
Now it is possible by adding badge property to nav or sidebar configs
 {
    text: 'Sponsor',
    badge: { text: 'beta' },
    link: '/sponsor/'
  }

Additionally, you can specify the color of the badge
 {
    text: 'Sponsor',
    badge: { text: 'beta', type: 'success' }, // available types - 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger'
    link: '/sponsor/'
  }

NOTE: This feature is required to be able to highlight the upcoming "Developers" partner page on vuejs.org website.

Can we make the badge visually smaller by decreasing the padding and increasing the border radius a bit?

I have switched this to draft, as we are waiting for @vue/theme navbar badge approval.


LRM does not seem to be multiplayer safe

I can't connect until this mod is removed.

Hi Diablo-D3,
I can reproduce it. FIxing it may take a few days, as I don't have too much time.
Version 1.27 should work for the time beeing. It has some known bugs, though.

interesting thing here.
I can reproduce desyncs, but not the error message you postet.
Can you give me more information? a complete modlist? Gameversion? mod version?

Could be fixed,...
or could not be. as I cannot reproduce the exact issue and don't have a log to verify i can only guess...

Unfortunately, local log nor server log mentioned anything other than the same error.
It was otherwise a totally normal BobAngel game with nothing weird.
My gaming group is now doing a Py game (wish us luck), and we wont be getting to logistics for another 4 years.


Error while trying to access published set.

Hi, first of all, thanks for this awesome tools.
I'm trying to publish a set of items. The "publish" configuration seems correct, also the set I want to share, use camliRoot and camliPath:FOO : sha224-....
However when i'm requesting the published web page, I got the title displayed, but nothing else.
In the perkeep log, I got "2022/02/22 18:29:30 Failed to open file "js.js.map" from embedded resources: open js.js.map: file does not exist".
Obviously this file don't exist on server side, the only reference to it, is in published.js generated file, last line:
[...]
//# sourceMappingURL=js.js.map

I'm not sure the fact that the file does not exist implies the web page is missing all images...
I'm using the last github commit (a42e61b826e6c8464372fc638cf14e5411452725).

I tried to reproduce but it seem to work for me locally ( with devcam and a freshly installed publisher ). Can you maybe try to see if its reproducible with the dev environment too?

Hm, it seems i didn't fully understand what I was trying to do... Now it's more clear.
I use the following command to add my directory containing pics:
pk-put file -permanode --title "Barcelona 2014" --tag=barcelone,holiday 2014-barcelona/
The results is a directory with a permanode, but pics in this directory do not have permanode.
So my question is "Is it possible to create share a permanode of a directory containing (in my case) pictures which don't have permanode associated on each pictures ?"
So far, i will say no, but can you confirm ?
Using the command pk-put file -permanode -filenodes --title "Barcelona 2014" --tag=barcelone,holiday 2014-barcelona/, I was able to set up the share and then access it.

Hey @kalidor
Ill try in the evening!

Seems "-filenodes" is required.
I can share it and retrieve the directory using pk-get -shared <URL><SHA-of-shared-permanode> -o <DIR>.
However, when trying to get it using the publisher, I got a 404 not found.
If I restart perkeepd, i can access it.
If I add a new directory (2) containing pics (-filenodes) and make a permanode to share it.
If I restart perkeepd, i can access the new one(2), but not the first...

No worries, your issue helped me getting to know the publisher too as i hadnt used it yet! Seems pretty cool though.


Support for SCEP?

Is your feature request related to a problem? Please describe.
In internal enterprises were kubernetes is used, there is often an alternative software and protocols which provides Certificates, and ACME is not available. I would like to have the option to use SCEP which is an alternative protocol to do this.
Describe the solution you'd like
implement SCEP as Client, so in an internal datacenter the software can work with automatically provided certificates.
Describe alternatives you've considered
Deploying ACME internally is problematic because of the validation. Validation happens via Authentification for SCEP. and SCEP is already supported and used in bigger enterprise environments.
/kind feature

EST is the successor of SCEP so hopefully #2805 could be of interest


Can't get echo server to work.

Granted this is new to me so please help me in the right direction.
I have a docker setup with Laravel, laravel-echo-server, mariadb, redis and more running but somehow i just can't get echo to play along.
It connects fine as I can see from the dev console in Chrome, but when I fire events nothing happens on the other client i have open in a separate browser window.
"universalModuleDefinition:2 XHR finished loading: GET "http://localhost:6001/socket.io/?EIO=3&transport=polling&t=LfomG84"."
I'm sending a request to a ajax controller via axios.get and firing the event from a Job Class.
Here's my code in case anything sticks out.
My laravel-echo-server.json file
{
	"authEndpoint": "/broadcasting/auth",
	"authHost": "http://localhost:8080",
	"clients": [
		{
			"appId": "758c02bc9b39eea6",
			"key": "45ccf64626d3fcfdd46a703746f46bea"
		}
	],
	"database": "redis",
	"databaseConfig": {
		"redis": {
			"db": 2,
			"port": "6379",
			"host": "localhost",
			"password": "redis"
		}
	},
	"socketio": {
	},
	"devMode": false,
	"host": null,
	"port": "6001",
	"protocol": "http",
	"sslCertPath": "",
	"sslKeyPath": ""
}

function in controller to handle request and dispatch job
public function testCall($msg)
    {
        $job = (new SendChatMessage($msg))
            ->onQueue('testQueue')
            ->onConnection('redis')
            // ->delay(Carbon::now()->addMinutes(3))
            ;
        dispatch($job);

        return response()->json(['msg' => $msg]);
    }

`
The Job
`
<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Events\NewsPublished;
use App\Events\ChatMessageWasReceived;
use App\ChatMessage;
use App\User;

class SendChatMessage implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $tries = 5;
    public $timeout = 120;
    protected $msg;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($msg)
    {
        $this->msg = $msg;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $user = User::first();
        $message = ChatMessage::create([
            'user_id' => $user->id,
            'message' => $this->msg
            ]);

        event(new ChatMessageWasReceived($message, $user));

        return 'test message';

    }
}

`
The ChatMessage Event to broadcast
`
<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class ChatMessageWasReceived implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $chatMessage;
    public $user;

    /**
     * Create a new event instance.
     *
     * @return void
     */
     public function __construct($chatMessage, $user)
    {
        $this->chatMessage = $chatMessage;
        $this->user = $user;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('mychan');
    }
}

`
ChatMessage Model
`
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ChatMessage extends Model
{
    public $fillable = ['user_id', 'message'];
}

`
Setup in bootstrap
import Echo from "laravel-echo"

window.Echo = new Echo({
   broadcaster: 'socket.io',
   host: window.location.hostname + ':6001'
});

Component to handle the echo test
`
<template>

Example Component

                        <button v-on:click="callLaravel('hello')">I'm an example component!</button>

{{message}}

</template>

`
Also when I run the artisan queue:listen I can see events getting processed fine...
Is there anything you can see that is out of order??

do i need to include
this script in app.blade.php?
i added it in
window.io = require('socket.io-client') instead...? still seems to work as far as running the app... but still nothing...
I also get
Error: connect ECONNREFUSED <IP_ADDRESS>:8080
Error sending authentication request.
If i create a private channel.... So confused.... Been trying everything...

I just noticed that it doesn't show redis in the console
Starting server...
2017-02-25T03:12:52.290389946Z
✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...

But i've setup redis as my broadcast provider and database in the server config...

@iamlasse It doesn't show Redis in the console at all unless it can successfully connect to Redis.

I finally got it working. Queue in .env must be = sync for some reason I had it to redis originally

To use redis alone see: https://github.com/tlaverdure/laravel-echo-server#redis-1


nb crate version conflict between 0.11.1 and embedded-hal

I just stumbled upon a problem that seems to be related to this PR: https://github.com/nrf-rs/nrf-hal/pull/179
Bottomline: nrf-hal-common won't compile.
I'm using the master branch, and here's what happens:
 = note: expected fn pointer `fn(&mut saadc::Saadc, &mut PIN) -> core::result::Result<_, nb::Error<()>>` (enum `nb::Error`)
               found fn pointer `fn(&mut saadc::Saadc, &mut PIN) -> core::result::Result<_, nb::Error<()>>` (enum `nb::Error`)
 = note: perhaps two different versions of crate `nb` are being used?

This affects saadc and timer modules.
In two cases the "expected" and "found" look identical as seen above, but then they aren't:
    = note: expected enum `nb::Error<void::Void>`
               found enum `nb::Error<_>`
    = note: perhaps two different versions of crate `nb` are being used?

If I run cargo tree it does confirm that two different versions of nb are used: v1.0.0 in the nrf-common-hal, and v0.1.2 in embedded-hal.
So I checked something that works for me: https://github.com/nebelgrau77/ItsyBitsy_nRF52840_ADC_serialTX - this uses the v0.11.0 of the nrf-common-hal, pulled from crates.io, so the nb version was still v0.1.2.
In fact downgrading it back to 0.1.2 in a local fork of the master fixed it.
 :)
Originally posted by @nebelgrau77 in https://github.com/nrf-rs/nrf-hal/pull/179#issuecomment-723559835

Have you tried running cargo update? nb 0.1.3 is compatible with nb 1.0.0

That solved the problem, thank you!


[CI] Update cpp-linter's option - extensions

update cpp-linter action's option

extensions : cc only -> defualt option

below is cpp-linter's defualt Option & Description
extensions
Description: The file extensions to run the action against. This is a comma-separated string.
Default: 'c,h,C,H,cpp,hpp,cc,hh,c++,h++,cxx,hxx'

Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2432. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


docs: updating config links

Can you confirm that these configs are checked by the config checker?

they arent - im happy to add after

they arent - im happy to add after

Either way. Can we potentially make it automatic with globbing like you did in the other places?

Either way. Can we potentially make it automatic with globbing like you did in the other places?

yep

OK let's merge and I will let you follow up. Thank you!


Invent a working module system for java

https://www.informatik-aktuell.de/entwicklung/programmiersprachen/java-9-das-neue-modulsystem-jigsaw-tutorial.html
there exists jigsaw it has a so called split package problem that other module systems do solve well so we need a way to handle jigsaw packages and build a superset of that
it will then dedup jigsaw packages and add versioning to them

Java Applet and Java Web Start technologies are being phased out. Oracle will no longer encourage end-users to have a JVM by itself installed. Instead, Oracle advises building your app as a standalone executable with a JVM bundled inside. This has already been commonly done on Macs, especially so if delivering an app through the Apple App Store. That approach is the new normal, to be done across all platforms including macOS, Windows, Linux, etc.  The new Java Modularization technology that began with Java 9, including the jlink and jpackage tools, make it easier than ever to bundle a down-sized JVM with your app.


Unsqueeze or exception?

Should we unsqueeze when we get an image with fewer than 4 dimensions or raise an exception? Right now, we do a mix of both
Originally posted by @billbrod in https://github.com/LabForComputationalVision/plenoptic/pull/96#r715758664

Moving over to #135