Support for Newgrounds.com

Please add support for Newgrounds.com
Example of a video: http://www.newgrounds.com/portal/view/671846

Newgrounds videos support added 0de968b58408a5584c9ad51f646f07e0fe161def and will be available in the next version.


IO of SSS info is broken after filtering with mne_process_raw

To reproduce, take the somato data, filter with:
mne_process_raw --raw sef_raw_sss.fif --highpass 1 --lowpass 40 --save test_raw.fif --projoff --decim 2 --filtersize 16384
then try this:
import mne

info = mne.io.read_info('test_raw.fif')
mne.io.write_info('tmp_info.fif', info)
info = mne.io.read_info('tmp_info.fif')

it should break. In otherwords the MNE-C code breaks the Python IO of SSS metadata :( :(
@Eric89GXL bad weather in seattle?

@mshamalainen there is a bug in the writing of sparse matrices in the C code. The sparse matrix in maxfilter proc history gets messed up on writing back to disk.
can you have a look?

It was working in the 0.8 release.. bisecting now.

It was working in the 0.8 release, running bisect now.

It was working in the 0.8 release, running bisect now.

I'm not sure I'm following, this functionality was recently added.

0.8 didn't read the SSS info, now we do. @agramfort is implying the problem is with the C code, not the Python code.

Oh, I see.. makes sense. So the error only happens after running mne_process_raw, correct?

How did @agramfort https://github.com/agramfort come to that conclusion? What exactly happens as a manifestation of the problem? The C code seems to work flawlessly reading and writing sparse matrices.

On Mar 3, 2015, at 2:08 PM, Eric Larson<EMAIL_ADDRESS>wrote:
0.8 didn't read the SSS info, now we do. @agramfort https://github.com/agramfort is implying the problem is with the C code, not the Python code.
—
Reply to this email directly or view it on GitHub https://github.com/mne-tools/mne-python/issues/1823#issuecomment-77012058.

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

It does not happen to me even then.

On Mar 3, 2015, at 2:10 PM, Martin Luessi<EMAIL_ADDRESS>wrote:
Oh, I see.. makes sense. So the error only happens after running mne_process_raw, correct?
—
Reply to this email directly or view it on GitHub https://github.com/mne-tools/mne-python/issues/1823#issuecomment-77012619.

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

@mluessi with @agramfort we processed data and realized that the fiff files containing SSS info are not readable anymore after the raw files have been processed using mne_process_raw + decimation. To be precise, the problem occured when evoked or epochs objects were created based on the processed raw files and saved to disk using python.

We were able to reproduce this using different SSSed datasets.

I believe now that this is the case but it is difficult to see how the C code would be broken in this respect. Let me investigate a little bit further.

On Mar 3, 2015, at 2:14 PM, Denis A. Engemann<EMAIL_ADDRESS>wrote:
We were able to reproduce this using different SSSed datasets.
—
Reply to this email directly or view it on GitHub https://github.com/mne-tools/mne-python/issues/1823#issuecomment-77013274.

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.

keep us posted @mshamalainen

There was, indeed, an error in the C code writing of sparse matrices. Fixed now. It was originally tested on my PowerPC MacBook and never came up because the C code never tried to actually use the sparse matrices it wrote. :)

@mshamalainen you rock! Thanks!!

I think it would make sense to also catch the error in the Python code and byte swapping in Python if it occurs. So it will work with raw files written by all versions of MNE. I volunteer to implement it.

PR more than welcome :)

This fix will be in the nightly build of MNE tomorrow.

mne-c.git clone up to date

There is a git clone of MNE-C? Where?

https://github.com/agramfort/mne-c
it's private though

btw if you want to take over the migration to git it would be great...
On Tue, Mar 3, 2015 at 10:26 PM, Alexandre Gramfort
<EMAIL_ADDRESS>wrote:

https://github.com/agramfort/mne-c
it's private though


Mi unlock tool always showing this device has been activated less than 7 days
And I have waited 9 days. Showing Error 10013

My device- Redmi note 10 pro
My account is logged in on my phone
Find Me Device is turned on
Oem unlocking is turned on
Usb debugging is turned on
I want to unlock the bootloader🥺
What do I do now? 😭😭

Even though I have waited 2 times 8+9 days and I received an error ever times


handling import problems

jishnu has issues with parallel_func_eval on mac; i have issues with numba on clusters. would be nice to  either

have a config file that lets the user turn this stuff off; or
have this detected automatically and deal with it

this might be doable with an updated init.py or something

along this vein, windows doesn't know what lscpu means, so maybe find something that will also work with pycharm on windows. surely there is a module for this

i think the lscpu issue really belongs elsewhere. in general it's probably a better idea to just give a virtual environment tutorial. i'll just make an issue for that


[#117991263] Use bosh-init from master

What
Concourses have now all been upgraded and we can use bosh-init from master once we merge https://github.com/alphagov/paas-docker-cloudfoundry-tools/pull/60.
How to review
Run the pipeline, hijack the bosh-init container and check which version is it running.
Who can review
not @mtekel

This can be merged once https://hub.docker.com/r/governmentpaas/bosh-init/builds/bkmghwo6mzzx9ozyithfnqz/ has built.

:+1: This looks good to merge as soon as Travis has passed.


Self-assigning should trigger unnecessary_statements

If you have a code like the following we should be receiving unnecessary_statements triggers:
void f(int a) {
  a = a;  // <-- No lint
}

The background for this is that while working on https://github.com/dart-lang/sdk/issues/57090 I ended with a code similar to:
int i;
if (other case int? i?) {  // It was an actual case but this is not the point
  i = i;   // shadowed i self-assigning
} else {
  return;
}
i; // <-- The non-nullable local variable 'i' must be assigned before it can be used.

In my case the variable in question was even the same name as a propriety for the class case I was testing. So by doing like MyClass(: var i) I completely shadowed my variable and was left wondering why I got that error bellow.

Note that there is a separate no_self_assignments rule. Is that sufficient?

Yes, I think it would be. Then two questions:

What about the concerns that @bwilkerson raised? The examples on the site do suggest it would warn for getters-setters.
Why aren't these on the recommended set? It feels like they are simple enough that they should.


Square device wants to be hip

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: [e.g. Debian, Windows, macOS...]
Windows 10 Pro
scrcpy version: [e.g. 1.12.1]
version 1.16
installation method: [e.g. manual build, apt, snap, brew, Windows release...]
Windows zip
device model:
Unihertz Titan
Android version: [e.g. 10]
9

Describe the bug
When connecting scrcpy to my Titan (phone with square screen and physical keyboard) it seems to want the device to be a different resolution than it is, which makes interacting with the device in the scrcpy window impossible. Running scrcpy results in a window with large black bars on the top and bottom of the screen. Mouse shortcuts (middle click for Home, right-click for Back) and most keyboard shortcuts work fine, but mouse left-click interactions send errors to the console.

The phone appears to report the correct size:

PS C:\Android\scrcpy> ./adb shell wm size
Physical size: 1432x1436

scrcpy appears to want to make it a portrait device, which is what the resulting window looks like:

PS C:\Android\scrcpy> .\scrcpy.exe
INFO: scrcpy 1.16 <https://github.com/Genymobile/scrcpy>
C:\Android\scrcpy\scrcpy-server: 1 file pushed, 0 skipped. 24.5 MB/s (33622 bytes in 0.001s)
[server] INFO: Device: A-gold Titan (Android 9)
INFO: Renderer: direct3d
INFO: Initial texture: 1432x1432
INFO: New texture: 1080x1432

When left-clicking to interact with the device, these errors are shown in the console:

[server] WARN: Ignore touch event, it was generated for a different device size
[server] WARN: Ignore touch event, it was generated for a different device size
[server] WARN: Ignore touch event, it was generated for a different device size
[server] WARN: Ignore touch event, it was generated for a different device size
[server] WARN: Ignore touch event, it was generated for a different device size

Any suggestions would be appreciated.

Updating my own issue:
If I specify a max resolution with:
scrcpy -m 1000
the result is a properly square scrcpy display where everything works.
Perhaps the issue is that there are few (no other?) square devices and scrcpy is coded in such a way as to not handle them correctly when left to defaults?

INFO: Initial texture: 1432x1432
INFO: New texture: 1080x1432

It's not a problem with square vs non-square, but the fact that the encoder outputs picture at a size different from what was requested (probably because it does not support higher definition).
See #1518

It's not a problem with square vs non-square, but the fact that the encoder prodices pictures at a size different from what was requested (probably because it does not support higher definition).
See #1518

Ah, thanks. I'd seen that post when searching for similar issues but it didn't (initially) appear to be related.
Also, now that I have it (mostly) sorted out, I noticed that left-click is kind of treated as a long press until I physically tap on the device screen, then left-click works normally. Still part of the same issue?

I noticed that left-click is kind of treated as a long press until I physically tap on the device screen, then left-click works normally.

Hmm, no that's not expected (and I could not reproduce). Always? On which devices? On which system? With a modified "wm size"?

The only combo with the problem is the one in the OP (Titan, Win10), though I have used the Titan on a different windows machine with an earlier version of scrcpy with no issues (mouse and window/display were fine). My Pixel 4XL (11 beta) does not have the screen/display issue or the left-click issue on this machine.
The left mouse issue happens whenever the device is powered on from sleep. It feels like the left-click is laggy, resulting in a long-press, but once I physically tap on the device screen, left-click is fine until the device sleeps again. Left-click drag works fine, the issue is only with click.

Does this left-click problem also happen on v1.14?


sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable

Go version:
1.20.6
So I don't know why I get this message

Never mind, I've got ARM64 , but never saw this message before.


crash when binding to a tcp socket

to reproduce:
synthpod_dummy -l tcp://localhost:9090
( altough it happens with any backend )
gdb gives a stacktrace that's different between the backends, perhaps there's a memory corruption spillover?
with dummy:
Program received signal SIGSEGV, Segmentation fault.
_sandbox_io_send (io=io@entry=0x55555568e2d0, index=index@entry=0, size=size@entry=0, protocol=0, buf=buf@entry=0x0) at ../sandbox_ui.lv2/sandbox_io.h:268
268	../sandbox_ui.lv2/sandbox_io.h: File o directory non esistente
(gdb) thread apply all bt
Thread 1 (Thread 0x7ffff79b3d00 (LWP 1014053)):
#0  _sandbox_io_send (io=io@entry=0x55555568e2d0, index=index@entry=0, size=size@entry=0, protocol=0, buf=buf@entry=0x0) at ../sandbox_ui.lv2/sandbox_io.h:268
#1  0x000055555555d7a6 in _sandbox_io_deinit.constprop.0 (io=0x55555568e2d0, terminate=true) at ../sandbox_ui.lv2/sandbox_io.h:536
#2  0x000055555555e17d in sandbox_master_free (sb=0x55555568e2d0) at ../sandbox_ui.lv2/sandbox_master.c:62
#3  sandbox_master_free (sb=0x55555568e2d0) at ../sandbox_ui.lv2/sandbox_master.c:58
#4  sandbox_master_new (driver=0x55555558c970 <handle.15540.lto_priv+816>, data=0x55555558c640 <handle.15540.lto_priv>, minimum=16777216) at ../sandbox_ui.lv2/sandbox_master.c:53
#5  bin_init.constprop.0 (sample_rate=<optimized out>, bin=0x55555558c640 <handle.15540.lto_priv>) at ../bin/synthpod_bin.c:419
#6  0x0000555555558fb6 in main (argc=3, argv=0x7fffffffc588) at ../bin/synthpod_dummy.c:608

with jack:
thread 3 "synthpod_jack" received signal SIG32, Real-time event 32.
[Switching to Thread 0x7ffff6f9c700 (LWP 1010803)]
0x00007ffff7e7042c in read () from /usr/lib/libc.so.6
(gdb) thread apply all bt

Thread 3 (Thread 0x7ffff6f9c700 (LWP 1010803)):
#0  0x00007ffff7e7042c in read () from /usr/lib/libc.so.6
#1  0x00007ffff7bc5d8f in ?? () from /usr/lib/libjack.so.0
#2  0x00007ffff7bcac79 in ?? () from /usr/lib/libjack.so.0
#3  0x00007ffff7bc4b3d in ?? () from /usr/lib/libjack.so.0
#4  0x00007ffff7b7f4cf in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007ffff7e7f2d3 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7ffff7fcd700 (LWP 1010802)):
#0  0x00007ffff7b85c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007ffff7bc5610 in ?? () from /usr/lib/libjack.so.0
#2  0x00007ffff7bbce36 in ?? () from /usr/lib/libjack.so.0
#3  0x00007ffff7bc4b3d in ?? () from /usr/lib/libjack.so.0
#4  0x00007ffff7b7f4cf in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007ffff7e7f2d3 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff712b740 (LWP 1010791)):
#0  0x00007ffff7b80a87 in __pthread_timedjoin_ex () from /usr/lib/libpthread.so.0

synthpod_dummy -l tcp://localhost:9090

That flag does not even exists, and TCP sockets have never been supported in the first place.
What version is this, where did you get it from ?


error on PfpParse

Each time i run PfpParse inside vim, i get:
"__PFP_HEX__ /Users/bob/blah/classes.dex"  --No lines in buffer--
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 272, in pfp_parse
AttributeError: number
Press ENTER or type command to continue

on any file.
~/.pfp exists
~ $ cat .pfp
{"template_dirs": ["/Users/blah/path/mac/010_Editor/templates"]}

ls /Users/blah/path/mac/010_Editor/templates:
<snip> lots of .bt files

python --version
Python 2.7.10

can import pfp okay:
$ python
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pfp
>>>

$ pip show pfp
Name: pfp
Version: 0.1.14
Location: /Library/Python/2.7/site-packages
Requires: py010parser, six, intervaltree

checking python reqs
pip install --upgrade six
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...

~ $ pip install --upgrade intervaltree
Requirement already up-to-date: intervaltree in /Library/Python/2.7/site-packages
Requirement already up-to-date: sortedcontainers in /Library/Python/2.7/site-packages (from intervaltree)
Cleaning up...

~ $ pip install --upgrade py010parser
Requirement already up-to-date: py010parser in /Library/Python/2.7/site-packages
Cleaning up...

using console macvim install,
vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul  9 2015 23:58:42)

with janus, and git cloned bundle:
ls .janus/pfp-vim/
plugin  syntax  LICENSE  README.md

cheers

This is due to a problem within pfp itself (https://github.com/d0c-s4vage/pfp/issues/14). pfp isn't yet 1-to-1 with 010 editor. It's slowly getting there though.
Closing here since d0c-s4vage/pfp#14 is already tracking Dex parsing in pfp


DirectML is x2.8 slower than CUDA

I tested training the same deepfake model on the same hardware using tensorflow-cuda and tensorflow-directml. (my project https://github.com/iperov/DeepFaceLab)
DirectML: avg iter time 626ms

CUDA: avg iter time 222ms

DirectML is x2.8 slower :-(
I think that's what I was talking about here https://github.com/microsoft/DirectML/issues/104
So what is the point of using DirectML if every millisecond of training acceleration is important in today's world?
x2.8 slower is serious performance degradation. I reached the same speed in my weekend OpenCL NN library in pure python (https://github.com/iperov/litenn)
But you are guys from microsoft company.
Don't you think there is no point in further development of DirectML until you reach the level of CUDA performance?

Do you have a simple set of steps on how to setup your project with a custom build of TF? I assume you tried with TF+DML from December? We have some significant perf improvements since the December version that will be released to pypi.org very soon (today or tomorrow most likely).
Keep in mind that training is a new scenario for DirectML so it's expected that certain operators aren't optimized (especially in the December version of TF+DML). Our TF fork is also still in a preview state. It takes time to build these things, and we have open source pages for DML & TensorFlow to get community involvement and help improve the project. Feedback like bug reports and performance issues is great, but try to keep it constructive!

I assume you tried with TF+DML from December? We have some significant perf improvements since the December version that will be released to pypi.org very soon

yes tf+dml from december.
Okay publish new version, I will test.

It takes time to build these things, and we have open source pages for DML & TensorFlow to get community involvement and help improve the project

Cool, but who in their right mind would use DirectML if it is slower than existing ones?
Speed in ML is the holy grail.

Okay publish new version, I will test.

We're about to publish a new version this week as soon as we resolve a bug related to loading on older versions of Win10. We only push packages to pypi.org when we've got a more stable/tested release, even though it's still a preview. You can always build our main branch for the latest. However, since we're so close to publishing a new version I've uploaded a temporary package to test.pypi for you here.
For what it's worth, I believe I hooked up the latest TF+DML to your project.

Downloaded DeepFaceLab_NVIDIA_build_03_23_2021.exe
Ran the extract scripts for src/dst data using default datasets. Didn't run XSeg stuff or any manual batch scripts.
Run train Quick96.bat with CPU

Run train Quick96.bat with GPU (RTX 2070 SUPER)

Launched python_console from _internal directory, installed pip, then pip installed tensorflow-directml from a private .whl package
Search and replace "/GPU:" with "/DML:" in your scripts
Ran train Quick96.bat

I could have made a mistake since I spent about an hour on this, but it looks like DML is quicker on my machine by about 1.5x.
The current public version of tensorflow-directml (from December) failed with an error because RsqrtGrad isn't implemented and I didn't bother working around it.

Cool, but who in their right mind would use DirectML if it is slower than existing ones?
Speed in ML is the holy grail.

Obviously speed is important, but it's a different problem to optimize for one network on a subset of hardware than to support arbitrary networks across a wide range of hardware. DirectML is part of DirectX, which is ultimately a hardware abstraction platform, and it needs to support a very broad set of devices. Let me ask you a question that we both know the answer to: why is using the CPU an option in your program if it's slower?

now only x1.2-x1.6 slower
DML: 580ms
vs
Cuda: 360ms
But at least my project can be used on AMD cards.

tf-dml works fine.
Integrated to DeepFaceLab as separated build.

I hope you continue to work on performance.

directml  only use shader, but cuda(cudnn) can deep into hardware special,  I think  1.2 ~ 1.6 is acceptable :)

I think 1.2 ~ 1.6 is acceptable :)

Not in ml world. Imagine pay 60% more for electricity for the same model

You might want to try the new package 1.15.5.dev210422 that is just released last Friday.
DirectML also deploys optimizations that directly execute certain hardware blocks when it's available in the underlying systems depending on the condition of the ML graph. We're working closely with all IHV, and your feedback is valuable to our ongoing effort.

@wchao1115 already using it.

I am personaly fine with that.
At least it runs on the AMD RX6000 Series.
Spares me from buying a Scalped 3090 or 3080 for 5000€...
Thanks for the great work. After my 2080ti bit the dust I learned something:
Working at a slower pace is better than not working at all.

Guys I think you can safely close this issue as a friend and I conducted experiments with a script that I can provide and DML was not only faster than the 1.15 CUDA but 2.x also. With all latest nvidia drivers, CUDA, cudnn and cudart installed. We tested with 3090, 3080TI and Titan RTX. I was shocked to see the performance gain from the December version. I saw this video and you can see how much slower DML was with the Dec. version, butt now it is a beast! Good job! Microsoft and NNI for the win!

Guys I think you can safely close this issue as a friend and I conducted experiments with a script that I can provide and DML was not only faster than the 1.15 CUDA but 2.x also. With all latest nvidia drivers, CUDA, cudnn and cudart installed. We tested with 3090, 3080TI and Titan RTX. I was shocked to see the performance gain from the December version. I saw this video and you can see how much slower DML was with the Dec. version, butt now it is a beast! Good job! Microsoft and NNI for the win!

Thanks, that's awesome to hear! We'd love to check out your script, because we have some more performance improvements coming in the next version as well.

can someone fix dml in onnxruntime ? it has CPU-like performance.

@DanielDimanov You mentioned that you can share the script you use to run your test. That would be interesting for us to see if you could. Thanks in advance.

What is the current progress? We found that directml is really quite slow. There is low cpu usage, but high gpu with almost 85% above, and the high latency.

by the way onnx-directml works perfect for inference. The speed is the same as on CUDA build.

@gotomypc are you using TensorFlow-DirectML, onnxruntime, or something else? Recently we released our first generally-available package for TensorFlow-DirectML which should have substantially improved training performance compared to the April preview build.

@gotomypc are you using TensorFlow-DirectML, onnxruntime, or something else? Recently we released our first generally-available package for TensorFlow-DirectML which should have substantially improved training performance compared to the April preview build.

I'm testing it right now with an AMD W6800 Pro, but I see no improvement over the Deepfacelab build Iperov put out on 9/6/2021.

@druuzil Can you send us the dxdiag log on the AMD W6800 Pro machine? We want to look at the driver version you're running it with.

@druuzil Can you send us the dxdiag log on the AMD W6800 Pro machine? We want to look at the driver version you're running it with.

I'm not home right now to look at it, but it's the latest version on the AMD website released on 9/15 which is 21.Q3

Not only is it not faster, but the new driver actually causes Deepfacelab training to progressively get slower over the course of around 90 minutes.
For example, I'm training a 640 resolution model. With a batch size of 1, the training time starts around 1800ms/iteration. After around 90 minutes, it slows to half that, and within another hour or so it just stops. The application doesn't crash, but the training halts.
This doesn't happen on the previous driver. Not exactly related to Tensorflow-DirectML but figured I'd mention it.

Thanks for your feedback @druuzil. I've relayed it to AMD. Hope we're able to look at this problem more deeply with them.

Hi guys! This is a very useful topic...i am using tensorflow-directdml in my AMD radeonX card and i tested my training model firstly in 10 samples of raw 1 sec wav audio(i want to train my model and then generate audio with Wavegan). The training gives me a model every 35 minutes....is this normal?? For just 10 samples? I cannot imagine the training time for hundreds of samples which is what i want to do. Any idea on what to check or how to find where it starts to slow ? i am using jupyter notebook....

Not only is it not faster, but the new driver actually causes Deepfacelab training to progressively get slower over the course of around 90 minutes.
For example, I'm training a 640 resolution model. With a batch size of 1, the training time starts around 1800ms/iteration. After around 90 minutes, it slows to half that, and within another hour or so it just stops. The application doesn't crash, but the training halts.
This doesn't happen on the previous driver. Not exactly related to Tensorflow-DirectML but figured I'd mention it.

Thanks for your feedback @druuzil. I've relayed it to AMD. Hope we're able to look at this problem more deeply with them.

Seems like this topic is borderline dead, but I recently upgraded to the newest driver from AMD (21.Q3.1), and the problem still exists.  It is impossible to train Deepfakes on the W6800 Pro on anything other than the original July 2021 driver that the card launched with.  The 2 subsequent drivers result in the performance slowing over the course of an hour or 2 until it just "decides" to stop training.
I don't know if there's a setting somewhere in the Radeon Pro software suite that's causing the card to slow down over time (maybe it believes it's idle or something, like a power profile issue?), but I haven't been able to find it.  I tried disabling Resizable BAR/Smart Access Memory (that icon wasn't in the driver software until the 2nd and 3rd drivers), and also disabled it in the BIOS of my board, but when I do that I can't train Deepfakes at all (I forget the error but Deepface Lab won't train an SAEHD model using the W6800 Pro if Smart Access Memory is not enabled).
Did AMD ever respond about this issue?  I'm probably the only person on the planet trying to train Deepfakes with a W6800 Pro so maybe it's not on their list of priorities, lol.

At AMD, we tried to reproduce the issue where we used exactly the same GPU (W6800 Pro) + the driver version 21.Q3 + the default training/model configs that are used in this tutorial here: https://www.youtube.com/watch?v=kOIMXt8KK8M. We could not reproduce the issue and could train the model for 4-5 consecutive days. These training/model configs may not necessarily be the same configs that you used to produce the issue. So, please can you provide the detailed configs that you used (your answers to the interactive questions that shows when you launch the various scripts in the tutorial)? Or if you used a completely different training method than that in the tutorial. We're hoping @druuzil  and/or @iperov can help shed some light.

@stp1200 hi. The subj is about [CUDA on NVIDIA] vs [DML on NVIDIA], not AMD. And current performance of DML is acceptable.

At AMD, we tried to reproduce the issue where we used exactly the same GPU (W6800 Pro) + the driver version 21.Q3 + the default training/model configs that are used in this tutorial here: https://www.youtube.com/watch?v=kOIMXt8KK8M. We could not reproduce the issue and could train the model for 4-5 consecutive days. These training/model configs may not necessarily be the same configs that you used to produce the issue. So, please can you provide the detailed configs that you used (your answers to the interactive questions that shows when you launch the various scripts in the tutorial)? Or if you used a completely different training method than that in the tutorial. We're hoping @druuzil and/or @iperov can help shed some light.

The model used in the video you linked is 128 resolution, default settings (ie Random Warp enabled, LRD/GAN disabled).
I have tested both a W6800 Pro and an RX 6800 16GB card with the DX12 version of Deepfacelab w/Tensorflow DirectML and had identical results in 2 desktops, and on a laptop using an eGPU enclosure.
In all instances the model begins training, and quickly slows down until it stops.
Systems tested:
Destop 1: AMD Threadripper 3960x, 64GB Corsair Vengeance DDR4 3600Mhz, MSI Creator TRX40 board, NVME SSD storage, Win11 (also tested on Win10 prior to OS update).
Destop 2:  AMD R5 3600, 32GB Corsair Dominator Platinum 3200Mhz, NVME storage, ASUS B450M TUF motherboard, Win11
Laptop w/eGPU: HP Spectre x360, 10th Gen i7, 16GB DDR4, NVME storage, Win11
I no longer own the 2nd desktop in question.   I tested both the W6800, and the standard RX 6800 in the 2 desktops, and the W6800 I tested yesterday in the external enclosure.
All instances reproduce the same inability to train a Deepfacelab model.  I have not tried at resolution 128, but have done 224 and higher with otherwise the same settings.
All the same models work perfectly on the same computers when swapped out for an RTX 3090 or RTX A6000.
I have tested every driver ever created for the W6800, along with multiple Adrenaline drivers.  I have turned Resizable BAR/SAM on/off.  XMP on/off.
We had someone else in the Deepfacelab discord channel a few weeks ago with an RX 6700 who had the same issues I'm describing.

Thanks @druuzil we can give it another try to reproduce, and will try resolutions of 224 and above. However, resolution is not the only training setting being interactively asked by the training scripts. In the tutorial video, it shows there are many more settings a developer needs to set interactively for each step of the training. We'd like to ensure we are using the same settings you are using. Is it possible to provide the settings you are entering step by step?
Also, we're wondering which version of Tensorflow-DirectML you are using? We are using the latest 1.15.5 version: https://pypi.org/project/tensorflow-directml/1.15.5/

Autobackup every N hour - 0
Write preview History - n
Target iteration - 0
Flip SRC faces - y (tried both ways)
Flip DST Faces - n (tried both ways)
Batch Size - Any (Typically 8-16, but have tried as low as 2)
Resolution - 224 or higher (usually 512, but 224 for Deepface "Live" models)
Face Type - WF or Head
AE architecture - liae-udt, liae-ud, df-ud, df-udt
AutoEncoder dimensions - 256 (Default), up to 512 (for Live models per Iperov's DF Live guide)
Encoder dimensions - 64 (Default)
Decoder dimensions - 64 (Default)
Decoder mask dimensions - 22 (Default)
Masked Training - Y
Eyes and Mouth priority - Y (aslo tested N)
Blur out mask - N
Place models and optimizer on GPU - Y (also tested CPU)
Use AdaBelief optimizer? - Y (also tried N)
Use Learning Rate Dropout - N
Enable random warp of samples - Y
GAN power - 0.0
Face style power - 0.0
Background Style Power - 1.0 (also tried 0, and 2.0)
Color transfer for src faceset - None
Enable gradient clipping - N (tried Y)
Pretraining - n
RE: Tensorflow DirectML versions, I have tested 1.15.5, as well as all existing Beta versions.

Small update-
I purchased another inexpensive desktop today with older components to test the card in (since I sold some of my other machines and the 2 I had remaining were both in use with Nvidia cards)
This one has an i5 4670k, 16GB DDR3, 500GB SSD storage and Windows 11 Pro
Exactly the same results.  And I tested a 128 model this time using the exact settings from the tutorial video that was linked (from Deepfake ENG ITA).
Training speed starts around 140ms per iteration at batch size 4, but rapidly slows down until it gets to around 800ms at which point it simply stops training.  I monitored VRAM throughout the test and usage did not change, so I don't think it's a memory leak.
Please advise if you've tested anything above 128 resolution and whether that worked for you.  I don't see how it's possible for you to not have the same results when I've done this now on 5 systems with 2 different RDNA2-based GPU's and had the same results every time.

Quick update - we can reproduce the issue now, and are investigating the root cause.  Thanks for your help @druuzil

Quick update - we can reproduce the issue now, and are investigating the root cause. Thanks for your help @druuzil

Great, I look forward to a resolution.  Thanks for sticking with it.

We found that DirectML from 1.3 to 1.8 contained a perf bug affecting op creation on certain hardware and drivers. The next release of DirectML will contain the fix. In the meantime, there is a workaround. Setting the environment variable TF_DIRECTML_KERNEL_CACHE_SIZE above the default 1024 (1300 works for my case) should prevent the bug. The larger cache should also improve performance a bit for this case regardless of the bug. We appreciate the detailed info you gave here, druuzil!

Testing now, it does appear to be working.  It's been running for ~10 minutes with a constant speed of ~95ms per iteration @ 128 resolution, settings as we outlined in the previous posts.
Thanks a ton for offering a solution, I've had my W6800 since last year around July and have barely been able to use it.

For me I am finding DirectML is 2x as slow as CUDA when using onnx runtime on NVidia 1080 GTX.

Still slow in 2024?


Preview5

:white_check_mark: Build TheIdServer 1.0.0-user-ole0032 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/58dda6096a by @aguacongas)


OSSRH-82400 Publish to Sonatype Open Source Project Repository

https://issues.sonatype.org/browse/OSSRH-82400

@tristantarrant deploying locally, the modules inside the build folder are not being signed.

I've moved gpg and nexus staging plugin config and profiles over to bom/configuration/pom.xml so that they apply to every module now

replaced by https://github.com/infinispan/infinispan/pull/10225


Relative Image Paths

I am trying to understand what PhrozenByte wrote in  #493. It is exactly what i am looking to do, replace ../../assets/cats.jpg with either %assets_url%/cats.jpg or %base_url%/assets/cats.jpg if that'd make more sense. Unluckily the description of the solution is very unclear to me, as to where and how i would have to play with the piece of code PhrozenByte wrote there.
What i did was "create" a plugin called ParsedownRelativePicoPlugin with the code. The image URLs in the html still look like ../../assets/cats.jpg. Now i am not sure if it's something to do with the code (i can't really understand it), or if i wasn't meant to make a plugin out of that code but something else. Could somebody please elaborate a bit more on what i may be doing wrong? Or how else i can make relative image paths work?

Thank you. I have not been able to make it work for me though. I tried it with a new pico installation. Tried just a ParsedownRelativePicoPlugin.php file in the pico/plugins folder, tried to put it in a ParsedownRelativePicoPlugin folder, tried both ways of enabling the plugin. I guess something must go over my head here.

Here's my full file if you want to try it.  I double checked that it was working for me.  I originally tested it with a development build of Pico 3, so I went back and tested it in Pico 2 just to make sure.
I didn't have any issue with it (minus some user error *cough* when I forgot to enable it 🤦🏻♀).
Idk, maybe something went wrong with copying just the start of the file.
And of course it still needs the ParsedownRelativePicoPlugin.enabled: true in config.yml (🤦🏻♀ 🤦🏻♀)
It sounds like you've tested it pretty throughly, so other than double checking with a copy-and-paste of the full file, I'm not sure where the issue would be. 😓
@PhrozenByte Do you have any ideas here?
(Ik, I've been tagging you on everything lately. Sorry! 😅😓)
ParsedownRelativePicoPlugin.php
<?php

class ParsedownRelativePicoPlugin extends AbstractPicoPlugin
{
    const API_VERSION = 3;

    protected $enabled = false;

    public function onParsedownRegistered(Parsedown &$parsedown)
    {
        $config = $this->getPico()->getConfig();

        $parsedown = new ParsedownRelative();
        $parsedown->setPico($this->getPico());
        $parsedown->setBreaksEnabled((bool) $config['content_config']['breaks']);
        $parsedown->setMarkupEscaped((bool) $config['content_config']['escape']);
        $parsedown->setUrlsLinked((bool) $config['content_config']['auto_urls']);
    }
}

class ParsedownRelative extends ParsedownExtra
{
    protected $pico;

    public function setPico(Pico $pico)
    {
        $this->pico = $pico;
    }

    public function getPico()
    {
        return $this->pico;
    }

    protected function inlineLink($excerpt)
    {
        $link = parent::inlineLink($excerpt);
        if ($link === null) {
            return;
        }

        $href = $link['element']['attributes']['href'];
        if (($href[0] !== '/') && !preg_match('#^[A-Za-z][A-Za-z0-9+\-.]*://#', $href)) {
            $basePath = dirname($this->getPico()->getRequestFile());
            $targetPath = $this->normalizePath($basePath . '/' . $href);

            $rootDir = $this->getPico()->getRootDir();
            $rootDirLength = strlen($rootDir);
            if (substr($targetPath, 0, $rootDirLength) === $rootDir) {
                $link['element']['attributes']['href'] = $this->getPico()->getBaseUrl() . substr($targetPath, $rootDirLength);
            }
        }

        return $link;
    }

    protected function normalizePath($path)
    {
        $absolutePath = '';
        if (DIRECTORY_SEPARATOR === '\\') {
            if (preg_match('/^(?>[a-zA-Z]:\\\\|\\\\\\\\)/', $path, $pathMatches) === 1) {
                $absolutePath = $pathMatches[0];
                $path = substr($path, strlen($absolutePath));
            }
        } else {
            if ($path[0] === '/') {
                $absolutePath = '/';
                $path = substr($path, 1);
            }
        }

        $path = str_replace('\\', '/', $path);
        $pathParts = explode('/', $path);

        $resultParts = array();
        foreach ($pathParts as $pathPart) {
            if (($pathPart === '') || ($pathPart === '.')) {
                continue;
            } elseif ($pathPart === '..') {
                array_pop($resultParts);
                continue;
            }
            $resultParts[] = $pathPart;
        }

        return $absolutePath . implode('/', $resultParts);
    }
}

So it seems the problem was my local server environment, i uploaded the same pico installation to my webhost and there it works. Thank you!

Huh, weird.
Wish I had more insight for you on it, but I'm glad you got it working! 😁👍🏻

So, i tried fresh local server installations with xampp and wamp. With neither i get the plugin to work. I have not checked wamp, but xampp was using php v8.1.2 - not sure if that matters.
I have now installed php itself and used the built in webserver, now the plugin is working. I use php v7.4.28, i also tried with v8.1.3 and the plugin worked there too, but pico gave me some "deprecated warnings" like Deprecated : Return type of Twig\Markup::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in D:\Documents\web\pico3\vendor\twig\twig\src\Markup.php on line 35
I got these warnings using pico 2 and 3 branch.
Anyway, i am happy to have it working locally now as well.

I have not checked wamp, but xampp was using php v8.1.2

Oh... wow, yeah, I forgot running a web server on Windows was even a thing. 😅
I have absolutely no experience with either, so I can't say much about them.
As far as Pico versions go though... Pico 2.0 doesn't support PHP 8.0+ due to it needing older dependencies.
If you used the Pico 3.0 branch, it's currently still under development, so I wouldn't recommend that.  Also, since the plugin code above specified API_VERSION = 3 (and Pico 3 actually expects API_VERSION = 4), you'd also need the PicoDepreciated plugin (3.0-branch) for it to work (or change the API_VERSION to 4).  So that may have been part of the issue.
Finally, there's the Pico 3.0 "alpha" package mentioned in the readme right now.  It's perfectly stable to use, as it's basically just Pico 2 with some partially updated dependencies (for example Twig 2 instead of Twig 3, which should be in the final release).  This will give you an environment as close to Pico 2 as possible while supporting PHP 8.  Also, it still uses API_VERSION = 3, so don't change the plugin code like I mentioned before.
The best options right now are to either run Pico 2 on PHP 7 (despite it being out of support, so there could be some future security issue there), or to grab the Pico 3 Alpha bundle and use PHP 8.
Hope that insight helps a little with your setup.
Let me know if there's anything else I can help with. ❤


Ensure setup.py works again

While pip3 install . still works, python3 setup.py install does not (and
ditto for Python2), because subpackages of pygments don't get installed. Even
running find_packages on its own has consistent behavior:
$ python3
>>> from setuptools import setup, find_packages
>>> find_packages(exclude=['tests'])
['pygments', 'pygments.filters', 'pygments.lexers', 'pygments.formatters', 'pygments.styles']
>>> find_packages(include=['pygments'])
['pygments']

The bug seems to have been introduced in
8d0828bbfc5b8deb7525a19e1037704f644563da.
Tested on macOS 10.14 with Homebrew Python 2.7.17 and 3.7.5.
I'm no Python expert, but my fix is based on examples in https://setuptools.readthedocs.io/en/latest/setuptools.html#using-find-packages.
That packages does not recurse automatically is made clear by distutils docs:
https://docs.python.org/3.7/distutils/setupscript.html#listing-whole-packages.

I tested this and was able to setup.py install fine inside a virtualenv, and all the subpackages were installed, and pygmentize worked.
But I only tested Py3.6 and a newish version of setuptools, so there might be some version specifics going on, and obviously you're right that packages lists have to be comprehensive.
So I'll give in and use exclude after all.

2.5.2 is released with this change.

Uh, should this be maybe include=["pygments.*", "pygments"]? Does that work? Reading the documentation, that should do it. For exclusion, it should be ["tests", "tests.*"] -- see https://setuptools.readthedocs.io/en/latest/setuptools.html#using-find-packages.
@birkenfeld Do you want to change this yet again or leave as is?

Feel free :)

Ok :)

Should be fixed for real in 01f05b4dc5155745d401f31545fc1a089e8a3710. Tried it locally using Python 2.7.

No need for a new release this time.


tabulate module is not found

Hi Chuck,
Thank you for the wonderful training.  Your tutorial is very clear and concise.
By the way, I have downloaded this code python-52-weeks to be used for Week 4. Unfortunately for l_02_devices.py python file under m01_basics folder, it fails to run because the IDE said that the tabulate module is not found.
Can you assist on this?
Thank you so much!

Hi Chuck,
Got it all working now. I just need to install the external library tabulate to the VM by the command below.
$sudo pip3 install tabulate
Thank you so much!


Fix delete_trash

The startup time in large-ish environments is dominated by a call to the delete_trash function.
This function will walk the entire directory tree of the environment to look for files ending with  .conda_trash or CONDA_TEMP_EXTENSION (which is .c~ I believe).
The .conda_trash stuff seems to be necessary to support windows -- if a file is in use (e.g. running python), it cannot be deleted.
There have to be ways to speed this function up!

already adding conda-bld to the blacklist of directories to look for trash helps quite a bit...
maybe we could also change conda so that instead of marking files on the filesystem, it would add a text file to the conda-meta folder that has a mark for each file to be deleted.

Here is one way to speed this function up, by adding conda-bld to the blacklisted folders and by using endswith instead of fnmatch with globs.
def delete_trash(prefix):
    if not prefix:
        prefix = sys.prefix
    exclude = set(['envs', 'conda-bld'])
    for root, dirs, files in os.walk(prefix, topdown=True):
        dirs[:] = [d for d in dirs if d not in exclude]
        for fn in files:
            if fn.endswith('.conda_trash') or fn.endswith(CONDA_TEMP_EXTENSION):
                filename = join(root, fn)
                try:
                    unlink(filename)
                    remove_empty_parent_paths(filename)
                except (OSError, IOError) as e:
                    log.debug("%r errno %d\nCannot unlink %s.", e, e.errno, filename)

This is "mostly fixed" as it is only used on win now.


Why is Set a Function1?

I found out after spending several minutes on a compilation error in my code, that Set extends Function1. I see it has been done in #963 but I don't understand the rationale behind.
However I do see the problems it brings to the party for pattern matching:
Set<String> abc = Set("abc");
Set<String> result = Match(abc).of( // Does not compile: the Java inference engine sees abc as a Function1<String, Boolean> before a Set<String> thus expects result to be of type Boolean
    Case($(), abc)
);

Even without considering this pattern matching issue, I think this doesn't make sense. A Set is not a function taking a T and returning whether this Set contains it.
It is also not intuitive: I don't think many (any?) developers expect this.
Last: this looks like "favoritism" towards io.vavr.collection.Set#contains method. Why isn't Set<T> a Function1<T, T> in the name of io.vavr.collection.Set#add?
There's also no hint/explanation in the Javadoc.

I agree... It's just too easy to create a function out of a Set with a method reference to the contains method. I think this could be handled while we're still in the pre 1.0 phase. Or in any phase, as it's quite easy to work around it. Same for Seq, Map, Multimap.
Set<Integer> set = HashSet.of(1,2,3);
Function1<Integer, Boolean> f = Function1.of(set::contains);

Should I submit a PR?

@all
We aligned to Scala, there Set extends (A) => Boolean:

The same applies to Seq and Map and Multimap:
public interface Seq<T> extends Traversable<T>, PartialFunction<Integer, T>, Serializable {
}

public interface Map<K, V> extends Traversable<Tuple2<K, V>>, PartialFunction<K, V>, Serializable {
}

public interface Multimap<K, V> extends Traversable<Tuple2<K, V>>, PartialFunction<K, Traversable<V>>, Serializable {
}

where PartialFunction extends Function1.

@Sir4ur0n
However, the real problem are the Match.Case overloads. In our case the following are interesting:
    @GwtIncompatible
    public static <T, R> Case<T, R> Case(Pattern0<T> pattern, Function<? super T, ? extends R> f) {
        Objects.requireNonNull(pattern, "pattern is null");
        Objects.requireNonNull(f, "f is null");
        return new Case0<>(pattern, f);
    }

    @GwtIncompatible
    public static <T, R> Case<T, R> Case(Pattern0<T> pattern, Supplier<? extends R> supplier) {
        Objects.requireNonNull(pattern, "pattern is null");
        Objects.requireNonNull(supplier, "supplier is null");
        return new Case0<>(pattern, ignored -> supplier.get());
    }

    @GwtIncompatible
    public static <T, R> Case<T, R> Case(Pattern0<T> pattern, R retVal) {
        Objects.requireNonNull(pattern, "pattern is null");
        return new Case0<>(pattern, ignored -> retVal);
    }

If we comment out Case(Pattern0<T> pattern, Function<? super T, ? extends R> f), your initial code example compiles fine, because Case<T, R> Case(Pattern0<T> pattern, R retVal) is taken.

Method overloading in combination with inheritance leads to ambiguities. This is a weakness of our current API. We should think about our options to remove these potential ambiguities completely.

I managed to find an example of why Scala's Set extends (A) => Boolean: https://alvinalexander.com/scala/how-use-scala-set-function-predicate
However I keep thinking this is not a good design, even in Scala. I feel like this is a time saver in 1% of the cases but misleading in 99% of the cases... As @nfekete pointed out, it's just so easy/cheap to write contains (either in Java or Scala) for these 1% that it doesn't seem relevant.
Overall using a Scala Set as a function seems to be nearly never used (or I didn't use the right terms with my friend Google).
I'm also not a good Scala developer: Scala may be handling overloading + inheritance just fine. However Java definitely doesn't.
Of course a solution is to NOT use overloading (different method names). I'm just afraid of ending with very long method names to describe each signature (CasePatternValue, CasePatternSupplier, CasePatternFunction), or worse, cryptic method names (CasePV, CasePS, CasePF) leading to overall less usability/affordance.

I agree, Set as a Function is rarely used.
Having Seq, Map and Multimap being PartialFunctions is useful in the sense that they can be used in conjunction with the Traversable.collect(PartialFunction) method. There is no syntactic sugar in order to create PartialFunction instances, they are no FunctionalInterfaces.
However, PartialFunction extends Function (like in Scala). This leads to the same ambiguities we already experienced with Set.
We could remove
public static <T, R> Case<T, R> Case(Pattern0<T> pattern, R retVal) {
    Objects.requireNonNull(pattern, "pattern is null");
    return new Case0<>(pattern, ignored -> retVal);
}

But then we wouldn't be able anymore to return constants using pattern matching, your initial example would look like this:
Set<String> abc = Set("abc");
Set<String> result = Match(abc).of(
    Case($(), () => abc)
);

or like this:
Set<String> abc = Set("abc");
Set<String> result = Match(abc).of(
    Case($(), set => set) // resp. Function.identity()
);

The question is, which functionality to remove:

[ ] Set extends Function1, Seq/Map/Multimap extends PartialFunction
[ ] Case(Pattern0<T> pattern, R retVal)

🤔

What if we would have PartialFunction defined as
public interface PartialFunction<T, R> {
    Option<R> apply(T t);

    static <T, R> PartialFunction<T, R> of(PartialFunction<T, R> f) {
        return f;
    }
}

Then, creating a PartialFunction from a Map would be just
Map<String, Integer> map = HashMap.of("a", 1, "b", 2, "c", 3);
PartialFunction<String, Integer> pf = PartialFunction.of(map::get);

I know, this would break the alignment with Scala. It would also incur one extra allocation of Option<R>, in case partial function is defined at that value, otherwise it will return the singleton empty().
But calling isDefinedAt and possibly apply in PartialFunction's current form has it's own cost: a double lookup in case of a Map for example. So we could argue which one is more efficient of the two. My off-the-cuff prediction would be that the allocation of Option would be the cheaper one as JVM is quite good at optimization, and escape analysis would make it possible to allocate these Option instances on the stack whenever it can make sure it doesn't escape the local context - but I admit, I haven't made any measurements on this.

I've made some quick measurement testing with the current PartialFunction and the functional interface one that would return Option. You can see the JMH benchmark and the results at https://gist.github.com/nfekete/d671372ec8fb631308a495296b47326e
There are two runs, one with 100% hit ratio, the other with 50% hit ratio (all keys have entries in the map, half of the keys have entries in the map, by random).
Interestingly, the functional interface version that returns Option is both faster and lighter on the GC. It has around half the memory allocations (avg 64 bytes vs 32 bytes when run with 100% hit ratio) compared to the current version.

@nfekete Thank you, that's interesting. If PartialFunction uses Option under the hood, one use-case is missing: We can't ask the PF anymore if it is defined for some input without calculating the output.
The Bit Mapped Trie (BMT) used by Map.get already calculates Option instances. Your new PF is constructed using a method reference, which performs better/has less overhead than a lambda instance. This leads to the benchmark results we observe.
The general case would be to have a domain, which is implemented in two independent ways, with PF_old and PF_new. I expect PF_new. Also both PF_old and PF_new have to be instantiated the same way (lambda vs method reference) to get a comparable benchmark.

Nevertheless, because of the uncovered use-case mentioned above I prefer to stay with the Scala-like PF. Also we keep our Case overloads (there exists a workaround using type-witnesses). We will remove  the {Set, Seq, Map, Multimap} extends [Function|PartialFunction].
We could then add conversion methods to cover the missing functionality:
interface Set<T> {
    Function<T, Boolean> toFunction();
}

interface Seq<T> {
    PartialFunction<Integer, T> toPartialFunction();
}

interface Map<K, V> {
    PartialFunction<K, V> toPartialFunction();
}

interface Multimap<K, V> {
    PartialFunction<K, Traversable<V>> toPartialFunction();
}

Additionally Seq and Map have methods withDefault which make the PartialFunctions total. (Interestingly Multimap does not have these methods). We should move (and rename) the withDefault methods to `PartialFunction:
interface PartialFunction<T, R> extends Function1<T, R> {

    default Function1<T, R> total(R defaultValue) { ... }

    default Function1<T, R> total(Function<? super T, ? extends R> defaultFunction) { ... }

}

The same question is just asked on scala's gitter:)

Map#apply looks up the key and returns the value (or throws an exception if not found)

@chisui you are right. It had historic reasons, we aligned to Scala. However, newer version of Scala also removed the Function type from Set:

Let's do it and also remove it!
Any volunteers for a PR?


Add simple health check endpoint

Basic implementation, no additional dependency required (i.e. quarkus-smallrye-health).
Tested on Kubernetes 1.16.
kubectl exec strimzi-cluster-operator-c6df768f9-mslct -- curl http://strimzi-drain-cleaner/health | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    20  100    20    0     0   4000      0 --:--:-- --:--:-- --:--:--  4000
{
  "status": "RUNNING"
}

You need to rebuild the image, or you can simply use quay.io/fvaleri/drain-cleaner:latest.

@fvaleri I did the CI build and changed the artifact / package names in in other PR. So I had to rebase the PR to make it mergeable and have the CI run on it. Hope you don't mind.

@scholzj np :)


No wheels for Python 3.11

Hi,
Python 3.11 has been released as the current stable version, and it would be great to get wheels for this version.
Thanks!

Closing because wheels are now available for 3.11. Thanks!


Update make_mixture_from_samples.R

syntax tweaks

just incorporated most of the changes manually except for the change I mentioned in a previous comment. so closing this for now


Navigation Location of file is forgotten in Language Translator

Description of bug
Navigation Location of file is forgotten in Language Translator after you save the file.  You have to navigate to get to the same drop down as the file that is currently selected
Steps to reproduce
List the steps to reproduce the behavior:

Go to language translator
navigate to a resource file
click save after making a change
Click on the drop down list and the drill down to the file selected is unavailable.

Current result
You need to navigate back through the drop down every time you want to select a new file.
Expected result
The drop down list would show all folders that previously had been expanded to get to the current file selected.
Screenshots
If applicable, provide screenshots to help explain your problem.

Error log
Paste the error log that is related to this issue.
Additional context
It is nice to be able to see what places you have already visited as well as go to a file in the same language translation resource type by having all previously expanded or closed shown at all times.  Otherwise can be a real mind game.
Affected version

[ ] 10.0.0 nightly build
[ x] 9.4.1 nightly build
[x] 9.4.0 latest supported release

Affected browser

[ x] Chrome
[x ] Firefox
[x ] Safari
[ x] Internet Explorer
[ x] Edge

this is an important issue for translators, I noticed as well recently and should be reopened.

please check also #3468
The DDL misses to close itself after selecting a file, but it also forgets after saving the file, to open the path of the file in the tree view.

still an issue


Collectionless item has collection field & link

The collectionless-item.json example has a value for the collection field as well as a link to a collection. It's possible I'm misunderstanding the purpose of that example, but I was expecting it to be missing those fields, should that be the case?

See PR #1089


add ["data"] field to _write_json_data func

According https://auphonic.com/api-docs/query.html#details-about-a-production  all the required fields are into the field "data".

This is correct for the API response, but not for the production files that Auphonic generates and transmits for finished productions (see the test file). That's the reason why the tests fail.
If you want to pull the production data from Auphonic via API, you either need to strip out the API metadata or we need to implement some switch in Mikrowelle OS in order to allow both types of production files. Would you be interested in such functionality and possibly implementing this?

Thank you.
I did not know about the production file. I request json with API.

Closing for now. If you are interested in implementing new functionality you are highly encouraged to do so.


Is there any way to increase font size?

Not easily. The entire UI would need tweaking to accommodate a larger text size.
This is first complaint I've had regarding the text size. What's your resolution and screen size? The text looks fine to me at 1920x1080 on a 27" monitor.
Regardless, one factor that's probably contributing is that the current text renderer used by the program doesn't support ClearType (or unicode, for that matter). Some day I hope to switch it out for a FreeType-based renderer, which should look much better, even at the same text size. That'll be quite an undertaking though.

2048x1152 at 23"

doesn't support ClearType

Clear enough. ClearType should fix all font rendering problems on lcd display.

Not easily. The entire UI would need tweaking to accommodate a larger text size.

This probably means program don't support HiDPI either?

This probably means program don't support HiDPI either?
Correct. The program isn't really designed in a way that allows me to support something like that.

Since you're having this issue, I'll try to find the time to look more closely at FreeType. I need to switch to that at some point anyway since I want to add unicode support.

I want to join in and say the font size is a bit too small for me. I just found PoB over the weekend

Add my vote too please. Using a 2560 x 1440 display.

Add my vote as well. It's super tiny on 2560x1440p, it's a pain for newbie players like me :)

+1 on a 4k (somewhat small) secondary display it is too small to read. To be sure, this is a 'first world problem" but it would be great to be able to tweak the UI text sizes

+1 to increasing font size please!

Pretty Please

+1

for 2k display


Gulp tasks not completing in order in import_export_development example

My team is attempting to implement the advanced dev process described on the Google dev blog.
As our code base has gotten larger, it seems that the tasks in our copy of your gulp.js file don't execute completely prior to being pushed up to the script file.  So we end up with a partial copy of files in the actual script file, but a complete copy in the local build/env/src directory.
It seems that somehow the shell.task call is executing prior to the other tasks completing.
Thanks for these incredibly helpful examples!
Our gulp.js file:
'use strict';

var gulp = require('gulp');
var jshint = require('gulp-jshint');
var shell = require('gulp-shell');
var minimist = require('minimist');
var rename = require('gulp-rename');
var debug = require('gulp-debug');
var concat = require('gulp-concat');
var del = require('del');

// minimist structure and defaults for this task configuration
var knownOptions = {
  string: ['env'],
  'default': {
    env: 'dev'
  }
};
var options = minimist(process.argv.slice(2), knownOptions);

// The root working directory where code is edited
var srcRoot = 'src';
// The root staging folder for gapps configurations
var dstRoot = 'build/' + options.env + '/src';

// Runs the copy-latest task, then calls gapps upload in the correct
// configuration directory based on the target environment
gulp.task('upload-latest', ['copy-latest'], shell.task(['gapps upload'],
    {cwd: 'build/' + options.env}));

// Copies all files based on the current target environment.
// Completion of "clean-deployment" is a prerequisite for starting the copy
// process.
gulp.task('copy-latest', ['clean-deployment'], function() {
  copyEnvironmentSpecific();
  copyServerCode();
  copyClientCode();
});

// Copies all .js that will be run by the Apps Script runtime
function copyServerCode() {
  return gulp.src([
    srcRoot + '/libs/*.js',
    srcRoot + '/server/*.js',
    srcRoot + '/server/utils/*.js',
    srcRoot + '/server/models/*.js',
    srcRoot + '/server/utils/*.js',
    srcRoot + '/ui/*.server.js'])
      .pipe(gulp.dest(dstRoot));
}

// Appends ".html" to any css, and any js that will be included in client code
// Then copies those .html files to the upload staging folder.
function copyClientCode() {
  return gulp.src([
    srcRoot + '/ui/*.html',
    srcRoot + '/ui/*.css',
    srcRoot + '/ui/*.client.js',
    srcRoot + '/ui/services/*.client.js',
    srcRoot + '/ui/libs/*.client.js',
    srcRoot + '/ui/libs/*.css',
    srcRoot + '/ui/styles/*.css',
    srcRoot + '/ui/views/*.html',
    srcRoot + '/ui/controllers/*.client.js'])
      .pipe(
      rename(function(path) {
        if (path.extname !== '.html') {
          path.extname = path.extname + '.html';
        }
        return path;
      }))
      .pipe(gulp.dest(dstRoot));
}

// Does any environment specific work.
// the "lint" step is also here, as that is only done on "dev"
// targeted updates.
function copyEnvironmentSpecific() {
  // Do target environment specific work
  switch (options.env) {
    case 'dev':
      //Copy dev util scripts, if target is "dev"
      gulp.src(srcRoot + '/**/*.js')
          .pipe(jshint())
          .pipe(jshint.reporter('jshint-stylish'));
      break;

    default:
      break;
  }

  return gulp.src(srcRoot + '/environments/' + options.env + '/*.js')
      .pipe(gulp.dest(dstRoot));
}

// Utility tasks
gulp.task('clean-deployment', function(cb) {
  return del([
    dstRoot + '/*.*'
  ]);
});

gulp.task('clean-deployments', function(cb) {
  return del([
    'build/dev/src/*.*',
    'build/tst/src/*.*',
    'build/prd/src/*.*'
  ]);
});

gulp.task('lint', function() {
  return gulp.src(srcRoot + '/**/*.js')
      .pipe(jshint())
      .pipe(jshint.reporter('jshint-stylish'));
});

Glad the samples are helpful for your team!
I took a look at your mods, and they don't seem out of line; We definitely didn't test this at super large scale. If you want full control over the sequence, you might add in the run-sequence gulp plugin - a stopgap before gulp adds sequencing control in 4.0.
If you do find an improvement, or even a minor fix to the above, please feel free to send over a PR.

This example has been since removed.


Remove alternative SDK initialization strategy

The alternative initialization strategy was not providing added value to the standard one and makes the documentation more complex. This PR removes the alternative initialization strategy from the documentation.

Not sure if changing the readme is enough to update the documentation as well at https://developers.velocidi.com/android-sdk/setting-up-the-sdk.html

Not sure if changing the readme is enough to update the documentation as well at https://developers.velocidi.com/android-sdk/setting-up-the-sdk.html

Since we're not going to release a new version, there is no need to update the changelog.


Null pointer in AestheticViewPager when resolving accent color

[x] I have verified there are no duplicate active or recent bugs, questions, or requests

[x] I have verified that I am using the latest version of Aesthetic (see the README)

[x] I have given my issue description title

[x] I have read over the documentation (before asking questions on how to do something).

Aesthetic version: 0.4.1

Device OS version: 7.1.2+

Device: Any
Source code at https://github.com/MnmlOS/Music

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference
                                                       at com.afollestad.aesthetic.Util.resolveColor(Util.java:85)
                                                       at com.afollestad.aesthetic.Util.resolveColor(Util.java:80)
                                                       at com.afollestad.aesthetic.Aesthetic.colorAccent(Aesthetic.java:383)
                                                       at com.afollestad.aesthetic.AestheticViewPager.onAttachedToWindow(AestheticViewPager.java:35)
                                                       at android.view.View.dispatchAttachedToWindow(View.java:15513)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2916)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2923)
                                                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1526)
                                                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
                                                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344)
                                                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:887)
                                                       at android.view.Choreographer.doCallbacks(Choreographer.java:699)
                                                       at android.view.Choreographer.doFrame(Choreographer.java:634)
                                                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:873)
                                                       at android.os.Handler.handleCallback(Handler.java:751)
                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                       at android.os.Looper.loop(Looper.java:154)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6244)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)

Reproduction Steps
Run app for the first time
Expected Result
Successful launch
Actual Result
Crash

Hmm, well that doesn't occur in the sample project so there may be something wrong with your configuration.

I thought I may have been calling the first time init too late, but according to the readme, that shouldnt be the case

Well, this would generally happen if the the view pager were trying to access the current accent color after the Activity it's contained in is paused, but that shouldn't really happen 🤔

The crash occurs around the point when the permission dialog appears, but the viewpager shouldnt even be configured by then?

All views in Aesthetic subscribe to theme color changes when they attach to their Activity 😁 https://github.com/afollestad/aesthetic/blob/master/library/src/main/java/com/afollestad/aesthetic/AestheticViewPager.java#L33
And because of that, the Activity definitely should not be null. So this is very weird.

Oh, I think I see the problem now.
When the permission dialog appears (Which must be around the same time the viewpager get the accent color) the activity is paused until the user responds
I'll move the permission request further back and see what happens :)

Ohhhhh, yeah, you're right. I can actually make a workaround for that 😀

Ooh, sounds good :D

Alright, so 0.4.2 should fix the problem by only clearing the context in Aesthetic if the active Activity is finishing (not just pausing to come back later) 😁

Yay, I'll test it now :D

So this issue is fixed, there are still more crashes after the  permission dialog, I'll have to work that one out later as I'm out of time


Add Customizable Header/Footer/'Classification Banners' to Rancher - Backend

Original ticket: https://github.com/rancher/rancher/issues/25694

removed to/test label, needs to be backported to release/v2.4

Available to test in 2.4.3-rc1

The enhancement is validated on v2.4.3-rc1 with change UI index to https://releases.rancher.com/ui/latest-2.4/index.html
Now we can set the header and banner and showing either of them or both
{
  "banner": {
    "textColor": "#313131",
    "background": "#27AE5F",
    "text": "Testing banner and header on v2.4.3-rc1, with UI index latest-2.4"
  },
  "showHeader": "true",
  "showFooter": "true"
}

Result:


更新swift5.9.2 对可选协议的描述

根据Apple 官方文档
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/protocols#Optional-Protocol-Requirements
Both the protocol and the optional requirement must be marked with the @objc attribute. Note that @objc protocols can be adopted only by classes, not by structures or enumerations.
可选协议只可以被class 遵守，并不需要class继承NSObject 或者标记@objc.

We appreciate your feedback. Our current focus is on translating Swift 6 content, while older versions will remain as is. Thank you for your understanding.


You deal -19 damage to a large angry bear.

resolved with c0f3b15


Tree shake doesnt work.

Describe the bug
I have a dependency with  package/dist/(esm, cjs). package.json provided field module with reference to esm. When i use import from library , import { component } from 'library' all library inside my bundle. When i import import { component } from 'library/esm' only what used goes to bundle. With create-react-app i dont need add esm as postfix.
Reproduction
stackblitz
Steps to reproduce
No response
System Info
System:
    OS: macOS 12.6
    CPU: (10) arm64 Apple M1 Pro
    Memory: 102.58 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.18.0 - ~/.volta/tools/image/node/16.18.0/bin/node
    Yarn: 1.22.19 - ~/.volta/tools/image/yarn/1.22.19/bin/yarn
    npm: 8.19.2 - ~/.volta/tools/image/node/16.18.0/bin/npm
  Browsers:
    Chrome: 106.0.5249.119
    Firefox: 105.0.3
    Safari: 15.6.1
  npmPackages:
    @vitejs/plugin-react: ^2.1.0 => 2.1.0
    vite: 3.2.0-beta.4 => 3.2.0-beta.4

Used Package Manager
yarn
Logs
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

We can't help without a reproduction.

here is minimal repo https://stackblitz.com/edit/vitejs-vite-e89bld. in order to see what inside  the bundle you can run analyze. And you will see all code from package @ornament-ui/kit gets in final bundle. if i build with cra only imported component added to bundle.

It seems Vite doesn't read the sideEffects field in @ornament-ui/kit/esm/package.json.
If you set sideEffects in @ornament-ui/kit/package.json, it works.
related: #7979

Closing as I confirmed #12628 fixed this one.


feat(dao) switch to lua-cassandra 0.4.0

Implements lua-cassandra 0.4.0, which is a complete rewrite of the driver with load balancing, retry policies, cluster awareness, and many other improvements.
Changes

This should fix scenarios described in #660. If a node goes down, and assuming the C* cluster has more than one node, the driver will retry the query on another coordinator.
The Kong configuration format under databases_available.cassandra slightly changed.
I also included a fix for #681 since with the load balancing policy it now makes sense to use raw requests instead of a batch to increment a rate-limiting value.
Add two shared dicts used by Cassandra for cluster informations and prepared queries.
Make the base_dao_spec tests somewhat more atomic.

Non-exhaustive changelog copy-paste for lua-cassandra 0.4.0:

Cluster topology auto detection (contact_points are not used as the only available nodes like it was the case before)
New cluster awareness capabilities (the driver detects healthy and unhealthy nodes and routes the requests according to it)
Still usable in both ngx_lua and plain Lua, still uses the cosocket API in ngx_lua and have the same features: simple, prepared, batch statements, same returned values on results etc...
Cluster awareness is stored using the ngx.shared.DICT API, providing cluster informations to all nginx workers at the same time.
Configurable load balancing, reconnection and retry policies. The only implemented load balancing policy is currently a simple Round Robin (shared across the nginx workers).
Waiting for schema consensus between nodes when executing DML statements
Binary protocol auto-downgrade for C* 2.0 (which only supports protocol v2)
A lot more options to be configured on a per-session/per-request basis
Nginx integration tests (along with pure Lua unit and integration tests with Busted)
Overall, a better architecture and probably other things I did not mention here

Todo
Before merging:

Much testing (especially the cases described in #660).
Check SSL is still working.

Long term:

The driver abstracts query preparations away, so this lighten the base_dao. However in the future, a slight rewrite could improve performance since lua-cassandra works best when it uses one session during a Lua handler (Currently, it creates a session for each base_dao:execute(), which is inefficient.
This switch will also allow to fix #720 since lua-cassandra < 0.4.0 was missing a cassandra.null type short-hand iirc. 0.4.0 has a cassandra.unset short-hand.

@thibaultCha Does this also fix #744 or it deserves a separate PR?

I don't know, not addressed here.


What's the meaning of vector map files?

Hello, Autoware:
First of all, thanks for sharing so amazing open source code.
I am working on autoware, specifically i am really interested in path planning based on vector maps. However, I am confused about what's the meaning of vector map files such as line.csv, lane.csv, etc. Are there more clear descriptions about them?
thank you in advanced!

These are road features such as lanes, signs, etc in  GIS (Global Information System).
@syouji do you have more documentation on vector maps?

@dejanpan - Any more documentation on this?

Duplicate #627


Not working ASP core 2.0 MVC on linux

services.AddSingleton<IEmailSender, EmailSender>();
services.Configure<AuthMessageSenderOptions>(Configuration);
// bug: options from linux secrets.json not read then:
services.Configure<AuthMessageSenderOptions>(options => {
    options.SendGridKey = "your key from secrets.json";
    options.SendGridUser = "your user from secrets.json";
});

Deployed from Windows 10 to SLES and bug checked:
    public class HomeController : Controller {
        private readonly string test;

        public HomeController(Microsoft.Extensions.Options.IOptions<Services.AuthMessageSenderOptions> optionsAccessor) {
            test = optionsAccessor.Value.SendGridKey;
        }

        public IActionResult Index(string institucija = null) {
            ModelState.AddModelError("", test);
...

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: fe1bea60-d173-f6d2-3559-b147699e295a
Version Independent ID: 98e7aacb-2a01-d581-9b03-bfef2893163e
Content: Account confirmation and password recovery in ASP.NET Core
Content Source: aspnetcore/security/authentication/accconfirm.md
Product: aspnet-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

What's not working? Secret manager?

Secret manager not working with options in ~/.microsoft/usersecrets/aspnet-WebApplication-0749395B-561A-43C7-9959-30811E79C8AF/secret.json on SLES 12.3 at least.
Therefore add options manualy to startup.cs:
services.Configure(options => {
options.SendGridKey = "SG...............................................";
options.SendGridUser =<EMAIL_ADDRESS>});

What happens when you save a key? Can you create a console app that reproduces the problem?

admin@webhost:~/WebApplication/WebApplication> dotnet user-secrets set SendGridUser<EMAIL_ADDRESS>Successfully saved SendGridUser =<EMAIL_ADDRESS>to the secret store.
admin@webhost:~/WebApplication/WebApplication> dotnet user-secrets set SendGridKey ..........
Successfully saved SendGridKey = ............ to the secret store.
admin@webhost:~/WebApplication/WebApplication> dotnet user-secrets list
SendGridUser =<EMAIL_ADDRESS>SendGridKey = ...........
or in another way:
admin@webhost:~/.microsoft/usersecrets/aspnet-WebApplication-0749395B-561A-43C7-9959-30811E79C8AF> cat secrets.key >>secrets.json
modify by mc(midnight commander) editor. Then:
admin@webhost:~/WebApplication/WebApplication> dotnet user-secrets list
SendGridUser =<EMAIL_ADDRESS>SendGridKey = .................
admin@webhost:~/.microsoft/usersecrets/aspnet-WebApplication-0749395B-561A-43C7-9959-30811E79C8AF> ls -l
total 16
-rw-r--r-- 1 admin users 138 Jul 31 07:40 secrets.json
-rw-r--r-- 1 admin users 137 Jul 23 14:22 secrets.json.l
-rw-r--r-- 1 admin users 140 Jul 23 11:15 secrets.json.w

Ok, "Account confirmation and password recovery in ASP.NET Core" not working in production. It's documented and inconvinient deploy to linux production.

@natemcmaster Are you aware of any issues with Secret Manager on SLES?

It's by design, but overcome exists
https://stackoverflow.com/questions/39668456/how-to-deploy-asp-net-core-usersecrets-to-production/52419860#52419860
2018-09-19, tr, 18:23 Scott Addie<EMAIL_ADDRESS>rašė:

@natemcmaster https://github.com/natemcmaster Are you aware of any
issues with Secret Manager on SLES?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/aspnet/Docs/issues/7804#issuecomment-422841688, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AYNb80elG1EdH6hSU0fyNKoa9x3QQCgiks5ucl86gaJpZM4VffT7
.

No known issues with User Secrets on Linux. User Secrets is not meant to be used in production environments. I recommend you use something else, like Azure Key Vault or the environment variable config provider, to manage production configuration settings.


Greenwich uses private APIs

The following non-public APIs are included in your application:
archive_entry_copy_stat
archive_entry_free
archive_entry_new
archive_entry_set_pathname
archive_error_string
archive_read_close
archive_read_data_block
archive_read_finish
archive_read_new
archive_read_next_header
archive_read_open_file
archive_read_support_compression_bzip2
archive_read_support_format_tar
archive_write_close
archive_write_data
archive_write_data_block
archive_write_disk_new
archive_write_disk_set_options
archive_write_finish
archive_write_finish_entry
archive_write_header
archive_write_new
archive_write_open_file
archive_write_set_compression_bzip2
archive_write_set_format_ustar
in '/usr/lib/libarchive.2.dylib'

Originally Apple was allowing this. libarchive is an open source library, so using it doesn't really seem like private API use, but I guess Apple wants to retain the right to pull libarchive and/or ship binary incompatible versions in the future. Regardless, we are now embedding the library to avoid this issue.


The founder's nitpicks

Alright optimization is still my top nitpick: it's passable as in the stutters are no longer insane, but they're still there
Like scrolling through the chat list, there are still microstutters where it dips below 60
Opening the convo view, there are still micro stutters
Scrolling through messages, there are micro stutters
My recommended fix for that would be to rewrite the widgets, I took a look at the code and it's still a lot of the stuff I wrote a while ago, but I'm sure there is a far better way to design it (I do not like the way I wrote it)
Also, all of the visual indicators for clicking on things are essentially gone now, and it makes the app feel much less responsive
Also very low priority, take a look at the hold to pop-up message it looks misaligned

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @tneot01 in #support.

taken care of


eventsource on top of jetty9

this replaces my older EventSource branch. Benefitts over the old branch:

on top of jetty9; jetty9 ships with an EventSource servlet so no need to use my custom servlet
unit tests
example

ServerSentEvents complement Ringo's WebSocket support when uni-directional communication from server to client is enough. The tech is fairly old (it's just chunked responses with a standardized message format) and supported by all browser except IE. Good polyfills exist for IE.
Jetty9 EventSource servlet http://archive.eclipse.org/jetty/9.2.5.v20141112/apidocs/org/eclipse/jetty/servlets/EventSource.html
IE8+ polyfill https://github.com/Yaffle/EventSource/

should the onconnect callback fire when the connection is open and the emitter is usable, or should it fire before that when jetty hands us a (passive) eventsource?
websocket calls onconnect only after the connection was established and is usable.
what's the use case for having an unopened eventsource?

the only use-case i can think of would be if one could prevent the creation of an event source in the onconnect callback, eg. for authorization or authentication checks (a quick test revealed that returning null in the newEventSource method cancels the connection).
so we could either

require that the onconnect callback must return the event source argument passed to it for an accepted connection, or
require that it returns a boolean indicating that newEventSource should accept or deny the connection

the downside of this is that an EventSource instance would be created before the auth check, but that's just food for the garbage collector in case of a denied request. if we really don't want that we could split onconnect into two callbacks (onconnect/ oninit?), the first receiving just the request as argument for auth checks, the second the EventSource instance (in case the first callback returned true). but i don't think that's necessary.
in either case both eventsource and websocket should behave the same, and i'd love to get rid of the websocket onCreate callback i introduced in f14aeb6fd079fa18103607b83ca2e71e5f81a565.

I now realize we don't have to do SSE at the jetty servlet level.
We could also do it as a stick middleware:

going through JSGIServlet would give us a JSGIRequest in onconnect (currently it's a ServletRequest)
and we could put other stick middleware in front of it, like basicauth

here's a naive implementation of SEE for expressjs: https://github.com/zacbarton/node-server-sent-events/blob/master/index.js

@oberhamsi Can we drop this PR and implement it in stick or is it still a goal for 0.12?

yep, lets close it for now.


[TextField] floatingLabelFixed missing from V1

Problem description
The prop floatingLabelFixed seems to be missing from the TextField in V1. In the component demo all TextField are rendered with a floating label.
Is this feature gone or shall I just do it another way?
Versions

Material-UI: 1.0.0Beta6

We can implement it this way:
https://github.com/callemall/material-ui/blob/ceb6637eeafb555143d77c5efb9e1db4606d4144/docs/src/pages/demos/text-fields/TextFields.js#L84

Hi @oliviertassinari , Is there a way to set a fixed floating label on a TextField of type="text"? I used to do it by setting the floatingLabelFixed property on previous versions of MUI, but on V1 is no longer working Thanks

@nmartinezb3 Yes, you can find examples in the documentation. For instance:
https://github.com/mui-org/material-ui/blob/303199d39b42a321d28347d8440d69166f872f27/docs/src/pages/demos/pickers/TimePickers.js#L29-L31


Segmentation fault (core dumped)

🐛 Bug

Hello,
I followed the steps from: https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/INSTALL.md to install maskrcnn-benchmark.
But I get the problem segmentation fault when I try to test the webcam.py.

Can somebody help? Thank you very much!
Here is my settings:

PyTorch Version (e.g., 1.0): 1.0.0.dev20181113
GCC: 4.9.4
OS (e.g., Linux): ubuntu 16.04 LTS
How you installed PyTorch (conda, pip, source): conda
Build command you used (if compiling from source):
Python version: python 3.7
CUDA/cuDNN version: cuda 8.0.61
GPU models and configuration: GeForce GTX 1050
Any other relevant information: Nvidia driver version: 390.87

Additional context

Can you try doing
gdb python
(gdb) run webcam.py

And then paste the stack trace (by typing bt after it has crashed)?


Tarot reader

Here is a dungeon generator that uses a 78 card tarot using cups, swords, pentacles, and wands, and Major Arcana. Do you think /r deal 5 tarot could be implemented?

Yep, it can be implemented of course.

I suppose I had that coming. Will you?

I'm in a tight stop currently, trying to kickstart a couple of other projects. In theory, I think it's possible to find a win-win solution but in practice most people wouldn't go even as far as trying to convince me   D

Alright. Let me know either way at some point.

One of the projects I've mentioned is a creative writing game (cf. https://storium.com/), eventually it'll get funded and we might use something like this there.

Cool.
On Sat, Mar 3, 2018 at 2:31 AM, Artem<EMAIL_ADDRESS>wrote:

One of the projects I've mentioned is a creative writing game (cf.
https://storium.com/), eventually it'll get funded and we might use
something like this there.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ArtemGr/Sidekick/issues/107#issuecomment-370130612,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbY4-GJTO2wEcc7OJ7rIBUdScylRHVhSks5talT8gaJpZM4SYn_6
.

I'm not sure what you mean by that but I originally asked the question persuant to this thread on reddit where they talk about the numbers (1-10)and the suits (presumably also with Jack-King), but don't make mention specifically of what the major arcana are. but the sidescrolling list at the top of google and the wiki provides a list of what the major arcana usually are.

I see, thanks @steelsmiter !
I was thinking more in the vein of http://www.facade.com/tarot/, where the cards are displayed, and from different decks to boot, and with interpretations.
In the reddit I can see that a card consists of it's kind (Cups, Swords, number, etc), name (Benevolence) and a short interpretation (An empty hallway, A room to rest, An item or treasure, Help). Does that make sense?
Maybe you'd like to show an example of how the tarot deal should look with the bot?

I dunno, I wasn't thinking in gui terms, but like "# of suit" or if an
arcana is drawn saying what the arcana is.
On Tue, Nov 20, 2018, 12:07 PM Artem<EMAIL_ADDRESS>wrote:

I see, thanks @steelsmiter https://github.com/steelsmiter !
I was thinking more in the vein of http://www.facade.com/tarot/, where
the cards are displayed, and from different decks to boot, and with
interpretations.
In the reddit I can see that a card consists of it's kind (Cups, Swords,
number, etc), name (Benevolence) and a short interpretation (An empty
hallway, A room to rest, An item or treasure, Help). Does that make sense?
Maybe you'd like to show an example of how the tarot deal should look with
the bot?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ArtemGr/Sidekick/issues/107#issuecomment-440374817,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbY4-C-9dBwZOywKEdgs4OFu_8lxpjb4ks5uxETbgaJpZM4SYn_6
.