Add "Cancel" button to the trades in the Exchange view

Could you add a cancel Button in the Exchange view?
Would be great to cancel a pending order directly in there.

HyperDEX 0.1.0-alpha.1
Electron 2.0.0
win32 10.0.16299
Locale: de

Thanks for the suggestion. We plan to add this.

Currently this functionality isn't very useful due to the fact that you can only cancel pending swaps. Normally a swap will either be matched fairly quickly or never match.
Cancelling swaps that never match obviously doesn't add any real usability. Cancelling a swap before it's matched is difficult as it gets matched so fast. And cancelling a swap after it's matched would be useful for the user and is probably what most users expect to be able to do but isn't allowed by marketmaker.
I raised this before with James and asked if we could cancel matched swaps but he was strongly opposed to it. Is there any chance you would reconsider @jl777?

we could slow the ordermatch down a lot, but that seems not so good.
alternatively, changing the protocol would be required. What do you suggest to be done? Alice would need to force bob to reclaim the payment and deposit. I am not against it, it just seems quite impractical

we could slow the ordermatch down a lot, but that seems not so good.

No, fast matching is good.

alternatively, changing the protocol would be required. What do you suggest to be done? Alice would need to force bob to reclaim the payment and deposit. I am not against it, it just seems quite impractical

@jl777 couldn't you just stop Alice from responding to Bob anymore? So as far as Bob's concerned the swap failed due to network/communication issues. Then the swap will unwind/reclaim using the normal procedure.
Obviously id there's any way to instantly cancel and reclaim funds that's great, but I'm guessing that's not possible due to the timelock.
If so we will display a clear message to the user when they click cancel. We'll let them know that they'll lose their dexfee and it may take up to 4 hours for their funds to be reclaimed. We'll require them to confirm they're ok with that before actually cancelling.

user can effectively do this just by exiting, but I see how it is good to do it your way. I would need to add external signalling to the main swap threads. If we can limit to one cancel at a time, that would enable a global variable based method, it would then generate a "swapcancelled" message so you would know when you can cancel another one

but you want to cancel swaps that are already in progress, dont you?
there is no limit to the number of those, other than the practical limit of how many you can get going before they start completing

but you want to cancel swaps that are already in progress, dont you?

Yeah. I was assuming the mm would respond with a success after it's cancelled. So mm wouldn't process a new cancel until the first one finished.
But after re-reading your message with regards to the socket message. It sounds like mm would respond to the request before it's finished cancelling and then we get a message later notifying us when it's successfully cancelled.

If we can limit to one cancel at a time, that would enable a global variable based method, it would then generate a "swapcancelled" message so you would know when you can cancel another one

If I understand this correctly you want to have a single global variable that signals if a swap is cancelling so issuing multiple calls would mess this up. Is there a reason it needs to be implemented like that. Could you add something like an isCancelling property to the specific trade that is cancelling? Or have list of cancelling trades rather than a single value? That way we could cancel multiple trades at once.
Or is that not possible?

once an atomic swap starts, it launches a dedicated thread for that swap
to send messages to a specific swap, then I need to implement a messaging system from the main mm process to all the threads. Not impossible, but:
UUID_being_cancelled = uuid;
above is a much simpler way to implement it. if you update the UUID_being_cancelled before it actually is noticed and cancelled by the dedicated thread, it just wouldnt be cancelled

What bout a global list of UUIDs rather than just a reference to a single UUID?
Would that get around the message passing complications without imposing any user restrictions?

good idea, i guess this global list wont ever get too big, so the api would accept an array of uuid strings and abort at the protocol level, ie. same effect as pulling the internet cable.
so whatever array is passed in will set the global cancel list.
yes that would work, cant guarantee at what stage the swap is stopped and the usually timelocks need to expire to complete via normal swapstatus(requestid,quoteid), but it will prevent any new tx from being sent out

I was thinking the list would just be internal to mm.
So we pass in a single UUID with the API, it gets added to the global list, and removed once it's completed.

sorry, there are unknown number of threads running. getting it to accurately know when all have been processed would require adding some global threads tracking, which doesnt exist now.
I wanted to avoid all this complexity internally as mm1.0 is at the limits of having new requirements added to it after it is all coded and debugged.
That is why I suggested a singled global uuid. Now this is become some global thread manangement... maybe we make it a 2.0 issue.
also the timeout for electrum connect seems to have destabilized trades, investigating that

@Erlix322 This will be added as part of #481. It works much better with GTC orders, however the mm cancel behaviour is still slightly buggy.


Update leaderboard.js

This should fix the problem where if everyone doesn't have the score, it doesn’t display

Please make sure to change the code in the src folder and then transpiling the code. Last of all have you tested it to make sure it fixes the bug?

Yea I just tested it, and it works. Also just added it to the src folder, mb


KAFKA-6860: Fix NPE in Kafka Streams with EOS enabled

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Call for review @bbejeck @vvcephei
PR also contains some code cleanup. This should be cherry-picked to 2.0 branch.

@guozhangwang I think, we should also cherry-pick to 0.11.0, 1.0, and 1.1 branches. WDYT?

Updated this. Also added unit-test. Some more Java8 cleanup.

It would be nice if this fix applies to 1.1!

retest this please

Assuming clients:checkstyleMain is fixed from jenkins, please feel free to merge and cherry-pick to old branches.

Merged to trunk and cherry-picked to 2.0 and 1.1. (1.0 is no affected)


Several improvements

After using hstr for a while, I've gathered a number of unrelated changes.  They are all in one pull request instead of separate ones as they are quite small.
Fixes of bugs:

Recalculate height on terminal resize (number of items stayed the same)
Fix Ctrl-R when prompt is at the bottom (was moving in wrong direction)
Make print_help_label() preserve cursor position (it could jump to wrong line)
Don't crash after deleting last item in the list

Improvements:

No delay for escape key when ncurses extension is available
Don't use regexp to check for timestamp (can give up to 2x shorter startup time)

A couple of cosmetic changes:

Add .gitignore file
Use HH_COLOR_* constants in more places for consistency

@xaizek FYI, I just release new HSTR version 1.25 which brings your fixes and improvements. Thanks again!

Well, thanks for HSTR! It's a very nice improvement over behaviour of plain Ctrl-R.


OpenVINO backend

same as https://github.com/MouseLand/cellpose/pull/370 but in contrib
Efficiency measured on https://drive.google.com/open?id=18syVlaix8cIlrnNF20pEWKMWUsKx9R9z (16 images):
python -m cellpose --dir cellpose_test --pretrained_model cyto --chan 2 --chan2 3 --verbose

Backend
Processing time

PyTorch 1.11.0 (mkldnn)
94.808 sec

OpenVINO 2021.3
56.975 sec

CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz

Hi, @carsen-stringer and @kevinjohncutler! This PR proposes OpenVINO in contrib.

hey @dkurt I started testing this on windows and it seems I need to install visual studio in the default instructions. is there a conda version of the package we could use? I'm not sure if a 2x speed up is worth the hassle of this sort of install, unless there's a large improvement of speed in the training time. this is the error I got with only pip installing openvino==2021.3:
Traceback:
..\..\anaconda3\envs\cp\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests\contrib\test_openvino.py:5: in <module>
    from cellpose.contrib import openvino_utils
cellpose\contrib\openvino_utils.py:5: in <module>
    from openvino.inference_engine import IECore
..\..\anaconda3\envs\cp\lib\site-packages\openvino\inference_engine\__init__.py:34: in <module>
    from .ie_api import *
E   ImportError: DLL load failed while importing ie_api: The specified module could not be found.

@carsen-stringer, thanks for pointing this issue! Just tried Anaconda environment and done necessary changes. Please note that it required change install approach: from pip install cellpose[openvino] to just pip install --no-deps openvino because of NumPy conflict.

thanks! I'm getting the 2x speed up now! Is there any way to add the parameters method to the openvino model so we can use it with training? this is the error I get when trying to train a model with openvino:
AttributeError                            Traceback (most recent call last)
Input In [25], in <cell line: 15>()
     12 output = io.load_train_test_data(train_dir, test_dir, mask_filter='_seg.npy')
     13 train_data, train_labels, _, test_data, test_labels, _ = output
---> 15 new_model_path = model.train(train_data, train_labels,
     16                               test_data=test_data,
     17                               test_labels=test_labels,
     18                               channels=channels,
     19                               save_path=train_dir,
     20                               n_epochs=100,
     21                               learning_rate=0.1,
     22                               weight_decay=0.0001,
     23                               nimg_per_epoch=8,
     24                               model_name='CP_tissuenet')
     26 # diameter of labels in training images
     27 diam_labels = model.diam_labels.copy()

File c:\users\csmp\github\cellpose\cellpose\models.py:783, in CellposeModel.train(self, train_data, train_labels, train_files, test_data, test_labels, test_files, channels, normalize, save_path, save_every, save_each, learning_rate, n_epochs, momentum, SGD, weight_decay, batch_size, nimg_per_epoch, rescale, min_train_masks, model_name)
    781 if channels is None:
    782     models_logger.warning('channels is set to None, input must therefore have nchan channels (default is 2)')
--> 783 model_path = self._train_net(train_data, train_flows,
    784                              test_data=test_data, test_labels=test_flows,
    785                              save_path=save_path, save_every=save_every, save_each=save_each,
    786                              learning_rate=learning_rate, n_epochs=n_epochs,
    787                              momentum=momentum, weight_decay=weight_decay,
    788                              SGD=SGD, batch_size=batch_size, nimg_per_epoch=nimg_per_epoch,
    789                              rescale=rescale, model_name=model_name)
    790 self.pretrained_model = model_path
    791 return model_path

File c:\users\csmp\github\cellpose\cellpose\core.py:802, in UnetModel._train_net(self, train_data, train_labels, test_data, test_labels, save_path, save_every, save_each, learning_rate, n_epochs, momentum, weight_decay, SGD, batch_size, nimg_per_epoch, rescale, model_name)
    799     self.learning_rate = LR
    801 self.batch_size = batch_size
--> 802 self._set_optimizer(self.learning_rate[0], momentum, weight_decay, SGD)
    803 self._set_criterion()
    805 nimg = len(train_data)

File c:\users\csmp\github\cellpose\cellpose\core.py:749, in UnetModel._set_optimizer(self, learning_rate, momentum, weight_decay, SGD)
    747 def _set_optimizer(self, learning_rate, momentum, weight_decay, SGD=False):
    748     if SGD:
--> 749         self.optimizer = torch.optim.SGD(self.net.parameters(), lr=learning_rate,
    750                                     momentum=momentum, weight_decay=weight_decay)
    751     else:
    752         import torch_optimizer as optim # for RADAM optimizer

AttributeError: 'OpenVINOModel' object has no attribute 'parameters'

@carsen-stringer, OpenVINO can be used only for inference time, not training.

I see okay thanks!

Codecov Report

Merging #461 (975821a) into main (15c8e9b) will decrease coverage by 0.71%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #461      +/-   ##
==========================================
- Coverage   37.65%   36.94%   -0.72%
==========================================
  Files          16       17       +1
  Lines        5258     5360     +102
==========================================
  Hits         1980     1980
- Misses       3278     3380     +102

Impacted Files
Coverage Δ

cellpose/contrib/openvino_utils.py
0.00% <0.00%> (ø)

cellpose/models.py
84.92% <0.00%> (-1.39%)
:arrow_down:

cellpose/__main__.py
77.38% <0.00%> (-1.12%)
:arrow_down:

cellpose/dynamics.py
58.64% <0.00%> (-0.51%)
:arrow_down:

cellpose/utils.py
40.62% <0.00%> (-0.35%)
:arrow_down:

cellpose/core.py
58.31% <0.00%> (-0.32%)
:arrow_down:

cellpose/gui/gui.py
7.32% <0.00%> (-0.12%)
:arrow_down:

cellpose/gui/guiparts.py
11.59% <0.00%> (-0.07%)
:arrow_down:

cellpose/io.py
63.54% <0.00%> (+0.11%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 15c8e9b...975821a. Read the comment docs.


Workaround for Http PATCH in <=19 Devices

I've added the X-HTTP-Method-Override as suggested (thanks @isabsent).
I also discovered that this method is not supported with the
OneDrive for Business endpoint.  In this arena we can use PUT instead of
PATCH, which is supported.
Addresses issue #16 & #23

If you would like to verify this works, please use https://jitpack.io/#peternied/onedrive-sdk-android/PATCH-SNAPSHOT to pull in this pull request.

I did not check this condition
Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2

when I offered X-HTTP-Method-Override workaround. It may be MR1, KitKat or something else. Did you check?

Thanks for checking @isabsent I've actually gone and removed the build# from the mix to make this change more straight-forward

Works fine on 4.1.2 (API 16) and 5.0.0 (API 21).


feat(sdk-metrics): Fix build for ut coverage

:tada: This PR is included in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Introduce capability to build and archive commit level Python wheels

This PR introduces a new GitHub action which triggers on commits to main (or manual execution) that build Pythonn (3.10 & 3.11) wheels (distribution format) and stores the wheels under a GitHub releases.
pip install stablehlo -f https://github.com/openxla/stablehlo/releases/expanded_assets/dev-wheels

The 'trick' of using GitHub releases as a PyPI storage mechanism is outlined in this blog post.
At a high level the changes are:

Introduce a setup.py that covers the necessary files to include in the wheel file. The setup.py presumes that a StableHLO was built already and with Python bindings
A new GitHub action is triggered on commits to main.
Made minor changes to all the scripts to make a few CMake variables configurable such as CMAKE_BUILD_TYPE and whether to build the Python bindings

An example of this working can be seen on my fork https://github.com/fzakaria/stablehlo release page https://github.com/fzakaria/stablehlo/releases/tag/dev-wheels
Many thanks to @makslevental who helped me a lot on the Discord channel.
He pointed me to a few other solutions in MLIR that do similar approach which was the inspiration such as:

https://github.com/makslevental/pristine-llvm-release
https://github.com/Xilinx/mlir-aie
https://github.com/llvm/torch-mlir

The latest commit of this PR is successfully building in my fork.

Nice work and good learning for me about how such achieves are created!
LGTM except for a few comments.

Latest workflow is passing in my fork https://github.com/fzakaria/stablehlo/actions/runs/7644803787 with the new CI scripts.
Wheel also has the timestamp which should let it be ordered correctly by pip ex. <IP_ADDRESS>6122246
https://github.com/fzakaria/stablehlo/releases/download/dev-wheels/stablehlo-<IP_ADDRESS>6122246+f45e462c-cp310-cp310-linux_x86_64.whl


backward member implementation question

Why can't this function simply be implemented as follows?  Am I missing something?  We are dealing with a composite structure.
  def backward(self, is_first=True):
    if (is_first == True):
      self.grad = 1.0

    self._backward()

    for c in self._prev:
      c.backward(False)

The current implementation first does a reverse topological sort on all nodes (No parent comes before its child. For example x and y are parents of the expression (x+y). ) Then it calls _backward() in that order. So when we call the function _backward() for a node, we guarantee that its .grad property has its final (and correct) value and will not change in the future.
Consider the following example:

a = 2
b = 3
c = a + b
d = a * b
e = c + d
f = c * d
y = e + f

Your method will give an incorrect result for this example. I won't show it step by step as it looks too long and complex in text but you can calculate it with hand to see the problem. The problem will occur in the following way:

You set y.grad = 1 (correct)
You set e.grad = 1 (correct)
Then, because you are using recursion, you will go into the node "c".
You will set c.grad = 1 (This is not the complete/correct result obviously. This is only the part that comes from e. You will also need to add a +d term when you are calculating the gradient through f. So, as you can verify via calculus dy/dc = 1+d)
Now, again using recursion you will continue to the "a" node.
Now you will set a.grad = 1 (This is incorrect, you have calculated it thinking that dy/dc = 1. But the correct value was 1+d.)

I hope I could explain the problem clearly. If you are confused by the whole node and graph logic, watching this video would help you understand the structure more clearly as @karpathy imagined it.


update railgun submodule

Can you change that in the current merge request? If you push to your branch it will update the merge request automatically.

Unless I do not understand correctly

Huh? What you want? I need more info.

@araex can you look into this one? My sub module experience isn't that great


run a single step

BTW, I added merging caches to save Caches space (readme). As caches produced in my fork are ~4GB, merging caches may be applicable in your case. Though I don't know if caches for your jobs are similar.


Uncaught Error: Cannot create a checkpoint inside of a transaction

[Enter steps to reproduce below:]
Copy and paste code from an example in the web
Atom Version: 0.177.0
System: Mac OS X 10.10.2
Thrown From: vim-mode package, v0.30.0
Stack Trace
Uncaught Error: Cannot create a checkpoint inside of a transaction
At /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/history.js:174

Error: Cannot create a checkpoint inside of a transaction
  at History.module.exports.History.createCheckpoint (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/history.js:174:15)
  at TextBuffer.module.exports.TextBuffer.createCheckpoint (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/text-buffer.js:710:27)
  at TextEditor.module.exports.TextEditor.createCheckpoint (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/text-editor.js:1197:26)
  at VimState.module.exports.VimState.setInsertionCheckpoint (/Users/yagoriveiro/.atom/packages/vim-mode/lib/vim-state.coffee:364:36)
  at VimState.module.exports.VimState.activateInsertMode (/Users/yagoriveiro/.atom/packages/vim-mode/lib/vim-state.coffee:358:6)
  at Insert.execute (/Users/yagoriveiro/.atom/packages/vim-mode/lib/operators/input.coffee:27:17)
  at VimState.module.exports.VimState.processOpStack (/Users/yagoriveiro/.atom/packages/vim-mode/lib/vim-state.coffee:246:23)
  at VimState.module.exports.VimState.pushOperations (/Users/yagoriveiro/.atom/packages/vim-mode/lib/vim-state.coffee:207:8)
  at atom-text-editor.commands.(anonymous function) (/Users/yagoriveiro/.atom/packages/vim-mode/lib/vim-state.coffee:179:45)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:558:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:396:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/window-event-handler.js:170:20)

Commands
     -1:31.5 core:save (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
  2x -1:29.4 core:move-down (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
  6x -0:49.9 core:move-up (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:49.0 vim-mode:activate-command-mode (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
  8x -0:48.7 vim-mode:delete (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:46.5 core:save (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:13.5 vim-mode:move-up (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:13.2 core:paste (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:11.5 core:save (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
  3x -0:03.4 vim-mode:move-up (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:02.6 vim-mode:move-to-first-character-of-line-down (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:02.2 vim-mode:move-up (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:01.8 vim-mode:activate-insert-mode (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:01.2 vim-mode:move-to-first-character-of-line-down (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:01.2 core:paste (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)
     -0:01.1 vim-mode:move-to-first-character-of-line-down (atom-text-editor.editor.vim-mode.autocomplete-active.command-mode.is-focused)

Config
{
  "core": {
    "followSymlinks": true
  }
}

Installed Packages
# User
atom-beautify, v0.21.2
autocomplete-paths, v1.0.2
autocomplete-plus, v2.0.12
color-picker, v1.4.4
compare-files, v0.3.1
file-icons, v1.4.8
gocode, v0.2.1
linter, v0.11.1
minimap, v4.1.0
minimap-color-highlight, v4.0.0
minimap-find-and-replace, v3.1.0
minimap-git-diff, v3.1.1
minimap-highlight-selected, v4.0.0
minimap-selection, v3.1.1
project-manager, v1.15.5
script, v2.16.0
travis-ci-status, v0.11.2
vim-mode, v0.30.0
zentabs, v0.6.1

# Dev
No dev packages

/cc @atom/core

The root cause is some other package that is leaving an editor transaction open using the deprecated open-ended transaction APIs. The  gocode package's deprecated uses these. Can you disable that package and try again?

I closed and opened again the file and the error didn't reproduce.
I will open a issue in gocode package alerting of the use of deprecated stuff.
Thanks.


Average Output by Ride Type Appears to be Incorrect

First off, this is very cool.  I found a potential bug with one of the charts, the AVERAGE OUTPUT BY RIDE TYPE.  I filtered down to a single ride, which has an output of 322 as can be seen in the top rides chart below.  However, the ride type chart shows this ride's average output as 179.  This is the only ride of this type.

Unless I don't understand the ride type metric, it looks like a bug.

Hey, sorry for the confusion. I may need a better explanation but in this context, "average output" refers to the average you maintain during the ride itself. So while your total may be 322, the average you maintained throughout the ride was 179 (Maybe you were at 100 during the warm up but closer to 300 during the climbs, that sort of thing). Then for multiple rides of the same type, I'm just averaging that metric. Hope that makes sense. Thanks for checking it out and providing the feedback!
p.s. That Ministry of Sound ride is amazing. One of my hightest outputs ever.

I see, you are using the Avg. Watts metric rather than Output.  Thanks for the clarification.
BTW, I was introduced to your site by a team member at work.  We have a pretty big intersection of Tableau enthusiasts and Peloton riders.  I hope you don't mind, but I reproduced your charts as best I could using Tableau and the Peloton web data connector I created (of course I'll have to go back and fix this chart now that I understand it).
If you'd prefer I remove this workbook from Tableau Public, I will do so, since the creativity was yours (the description does link back to your site).  My goal is simply giving Tableau users easy access to their data without having to export it.

Nah, I think that's awesome! I created this just as a way to track for myself and it turned into a fun project I thought I'd share. Glad you found some use out of it!

Same story here.  Took on a little bit of a life of it's own 😅 , https://www.mypelotondata.com/home.  Be good, and stay safe.


Handle ConsumerGroup finalization for deleted topics

When a topic is deleted before a ConsumerGroup, we should
not fail to finalize the ConsumerGroup when deleting the
Consumer group in Kafka.
Signed-off-by: Pierangelo Di Pilato<EMAIL_ADDRESS>

/cc @aavarghese @matzew

/test unit-tests
Flake?
{Failed  === RUN   TestReconcileKind/Consumers_in_multiple_pods,_with_pods_pending_and_unknown_phase
https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative-sandbox_eventing-kafka-broker/2816/unit-tests_eventing-kafka-broker_main/1597918389655834624

/test unit-tests

/cherry-pick release-1.8

/cherry-pick release-1.7

/cherry-pick release-1.6

/test unit-tests

/retest-required

/joke


fix: fix claim commsig, allow JSON to be pasted on cli

Description

update claim proof protobuf representation to use CommitmentSig proto type
allow user to paste json into claim-burn cli
fix crash if user given malformed proofs

Motivation and Context
Claim burn works
How Has This Been Tested?
Manually
What process can a PR reviewer use to test or verify this change?
Burn funds on L1 using POSTman
Copy JSON from result
run: cargo run --bin tari_dan_wallet_cli --  accounts get-balances --account-name primary
Paste JSON
Breaking Changes

[ ] None
[ ] Requires data directory to be deleted
[x] Other - instruction changed. Transaction message not compatible with previous VNs

Decided to lock tari to 0.47.0-pre-0 since this requires that we implement the BalancedMerkleTree


syscall.Mmap under mount directory will got error: file resize error: invalid argument

Whether anyone have encountered such error. my GO projects host in windows, mount the directory in my virtual box Ubuntu actually . All my projects can run under these two platforms. But bolt DB such error as title.
if copy the run file on home directory it can work. i think it should be caused by the mount directory, but have no idea about this error. The mmap cannot work under mount directory file?

yes. a peer of mine had this same issue with the mmap call returning an invalid argument due to boltdb trying to mmap it's database off of the shared directory. if you copy it a real filesystem it should fix your issue.

Sounds like Virtualbox "shared folders" don't support mmap.


Fix throwing exception on normal FTP stream close

Fixes https://issues.apache.org/jira/projects/VFS/issues/VFS-674.
For some reason, some FTP servers return 426 when you abort a download request before it has completed. You can see this happening with a FileZilla server:
curl -v --range 0-499<EMAIL_ADDRESS>--output -
With the output being:
...
> RETR ExportHD.mpg
< 150 Opening data channel for file download from server of "/ExportHD.mpg"
* Maxdownload = 500
* Getting file with size: 500
* Remembering we are in dir ""
> ABOR
< 426 Connection closed; transfer aborted.
...

This PR handles cases like this.

Hm, this does mean you asume ok when the server tells you you had a incomplete download?

No, this is only meant to handle the client telling the server to interrupt the connection.

Maybe an "consume rest" method would be better for those who cant ignore the exception on close?

Well, most third-party code doesn't handle such a case. Why would anyone handle an IOException when you're closing the stream?

It is also a security problem if somebody can truncate SSL sessions and stuff...

Not sure what you mean here?

Ok I guess VFS is a reasonable high abstraction layer that users would not care about getting informed about such nuances from servers, so I guess we can swallow the abort message. (Maybe we could however detect if the input stream thinks we have read to the end and if we did, then not ignore it?)
My other content about TLS was that to avoid truncation attacks you typically have to expect a "close notify" and if that is not coming you would normally return an error on close (or on a synthetic last read).
The problem is that a SSLSocket EOFException which would notify you about the unclean shutdown is swallowed because the server also alerts you about the unclean shutdown. Thats a bit sad. So when I know I stop reading and clsoe a socket I do expect possible exceptions from the close even on read. But I know I might be special about that.

@ecki

Ok I guess VFS is a reasonable high abstraction layer that users would not care about getting informed about such nuances from servers, so I guess we can swallow the abort message.

Yes, that is also my thinking.

(Maybe we could however detect if the input stream thinks we have read to the end and if we did, then not ignore it?)

Well, it's not possible to know if the stream has been fully read so not sure how we can do this?

Is the onClose also used for OutputStreams? Maybe it should not ignore it in that case....

It is not used, no. There is another class for that and I haven't touched it there.

My other content about TLS

I'm not that familiar with the issue you describe. But TLS is a layer on top of the FTP protocol and these return codes are specific to it, I'm not sure this is a relevant problem here... but I'm by no means an expert.

Thank you for merging this patch! I don't see, however, the change in FTPClientWrapper so getReplyCode in FtpClient will always return FTPReply.COMMAND_OK or am I missing something?

Oh, OK, ignore what I said, I saw that you've done this in another commit. Thank you very much for the support! I'm looking forward to the 2.3 release. :)


Push type minitor can't deal with ping value with decimals in 1.22.0

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
Push type minitor can't deal with ping value with decimals.
The issue didn't exist in 1.21.3 . It first appear in 1.22.0
👟 Reproduction steps

Create a monitor with push type.
Call https://domain.tld/api/push/xxxxxxxx?status=up&msg=OK&ping=12.345
Shows "12" as ping value.

👀 Expected behavior
Shows "12.345" as ping value.
😓 Actual Behavior
Shows "12" as ping value.
🐻 Uptime-Kuma Version
1.22.0
💻 Operating System and Arch
Debian 12
🌐 Browser
Edge 114.0.1823.58
🐋 Docker Version
24.0.2
🟩 NodeJS Version
No response
📝 Relevant log output
No response

@Potat0000
I would suggest we continue this issue in https://github.com/louislam/uptime-kuma/issues/3343, as this is a more generic issue.
Could you close this issue?

See https://github.com/louislam/uptime-kuma/issues/3343#issuecomment-1616730611
=> This is not a bug, but rather intended behaviour.
Out of curiosity: Why would you need sub-1ms ping?


?: (4_0.E001) As of Django 4.0, the values in the CSRF_TRUSTED_ORIGINS setting must start with a scheme (usually http:// or https://) but found *. See the release notes for details.

issue is resolved


use codemirror

will focus on json support for now, others will follow in another PR

need horizontal scroll and line wrap


Logos have extra sigils

Installed on arch via 'go get', logo-ls displays correct icons and text, but each icon has an additional sigil appended to it.  Verified using KDE konsole and kitty, both with patched nerd fonts.  See picture for reference, and please let me know if more details are required.

Not quite sure this helps, but I just installed on arch from aur and it runs fine on kitty and st.

I'm experiencing the same issue. I used AUR to install. Nerd fonts are installed as well. I'm using 'Fira Code Retina' as my font in kitty shell. Based on 'logo-ls -l' it looks like maybe it's a space that's being used.

it looks like it's this line: https://github.com/Yash-Handa/logo-ls/blob/master/ctw/utils.go#L9
I'm wondering if my font does not have the same symbol as others? Not sure what the intention of using the braille symbol for spacing was, so maybe removing it is not the right answer. This change seems to fix it though: https://github.com/icub3d/logo-ls/commit/20c65b8e8b270b880475f95ed5df90ff9bd0c6e4
I'm happy to do a pull request if the change is acceptable.

Hi, @icub3d you got the issue right, The icons and file names are separated by an empty braille symbol, which should not be displayed but it seems some fonts do display it.
This empty braille symbol was used because in some terminals when a file started with a number (like 1test.go) and its corresponding icon Unicode ended with a number (like '\ufcd1') then the file name and icons were messed up.
As a workaround, I used an empty braille symbol as a space between them. I would like to hear about any other solution if you have.

Hmm, my first thought might be to try and figure out why the unicode characters are getting mashed together. Another option might be to use another character that's designated as a space. Here are some examples: http://jkorpela.fi/chars/spaces.html. \u2000 seems like another option.

Can we please fix this? Seems pretty trivial. There's a ton of actual space characters you can choose from.

If anyone else is having this issue, I found a workaround. You have to:
1. `git clone https://github.com/Yash-Handa/logo-ls.git`

2. `cd logo-ls`

3. `vim internal/ctw/utils.go` (or any other text editor)

4. on line number 9, change `brailEmpty string` from `"\u2800"` to  `"\u2000\"`

5. save and exit

6. `go mod tidy`

7. `go build`

8. `sudo cp logo-ls /usr/local/bin`

logo-ls command should now work and you should not see the empty braille symbol.

This worked for me , thanks MichalRybecky

had the same issue on archlinux, fixed it by installing ttf-dejavu

I had the same issue in vscode eidtor and vscode terminal on MacOS. But it works fine on Iterm2

If anyone else is having this issue, I found a workaround. You have to:

git clone https://github.com/Yash-Handa/logo-ls.git
cd logo-ls
vim internal/ctw/utils.go (or any other text editor)
on line number 9, change brailEmpty string from "\u2800" to  "\u2000\"
save and exit
go mod tidy
go build
sudo cp logo-ls /usr/local/bin

logo-ls command should now work and you should not see the empty braille symbol.

thanks! it works


Android: Flutter failing to start with "Launcher Activity"

Flutter only consider the top most activity in  Manifest.xml file as the launcher activity. It is ignoring <category android:name="android.intent.category.LAUNCHER" /> the intent-filter in manifest file.
Steps to Reproduce

Use beta v0.6.0 or beta v0.7.5
In Android manifest.xml change the position of Launcher Activity, put it in the bottom of the manifest file. (number of <activity tag in manifest should be great than 1 )
run/build flutter
it will try to launch the top most activity in Manifest.xml as launcher.

Logs

flutter run --verbose

[  +12 ms] Stopping app 'app.apk' on Android SDK built for x86.
[        ] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am force-stop com.groupon.redemption
[  +39 ms] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell pm list packages com.groupon.redemption
[ +244 ms] Installing APK.
[   +1 ms] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb version
[   +8 ms] Android Debug Bridge version 1.0.40
           Version 4797878
           Installed as /Users/tamjad/Library/Android/sdk/platform-tools/adb
[        ] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb start-server
[   +8 ms] Installing build/app/outputs/apk/app.apk...
[        ] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb -s emulator-5554 install -t -r /Users/tamjad/android/workspace/mobile-flutter-merchant/build/app/outputs/apk/app.apk
[+7261 ms] Success
[        ] Installing build/app/outputs/apk/app.apk... (completed)
[   +4 ms] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell echo -n f49865a0ac7c0036ea64f1886de3df079bb0dc33 > /data/local/tmp/sky.com.groupon.redemption.sha1
[  +22 ms] Android SDK built for x86 startApp
[   +2 ms] executing: /Users/tamjad/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell am start -a android.intent.action.RUN -f 0x20000000 --ez enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode true com.groupon.redemption/com.groupon.merchant.startup.StartupActivity
[  +86 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.groupon.redemption/com.groupon.merchant.startup.StartupActivity (has extras) }
[        ] Waiting for observatory port to be available...

$ flutter analyze
Analyzing mobile-flutter-merchant...
No issues found! (ran in 3.6s)

flutter doctor -v
[✓] Flutter (Channel beta, v0.6.0, on Mac OS X 10.13.5 17F77, locale en-DE)
    • Flutter version 0.6.0 at /Users/tamjad/android/workspace/flutter
    • Framework revision 9299c02cf7 (3 weeks ago), 2018-08-16 00:35:12 +0200
    • Engine revision e3687f70c7
    • Dart version 2.1.0-dev.0.0.flutter-be6309690f

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.1)
    • Android SDK at /Users/tamjad/Library/Android/sdk
    • Android NDK at /Users/tamjad/Library/Android/sdk/ndk-bundle
    • Platform android-28, build-tools 28.0.1
    • ANDROID_HOME = /Users/tamjad/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[!] iOS toolchain - develop for iOS devices
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install:
        brew install ios-deploy
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without resolving iOS dependencies with CocoaPods, plugins will not work on iOS.
        For more info, see https://flutter.io/platform-plugins
      To install:
        brew install cocoapods
        pod setup

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 24.2.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] Android Studio (version 3.0)
    • Android Studio at /Applications/Android Studio 2.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)

[✓] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.0.0 (API 26) (emulator)

! Doctor found issues in 1 category.

I think this is probably an issue in the Java code in the engine. cc @jason-simmons

This is related to flutter_tools.  The current tools should scan the manifest for the activity with the LAUNCHER category:
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/application_package.dart#L182

seems fixed in dev v.1.2.2
if open directly android of project folder in android studio.

Seems related to #29335
Changed to dev (1.3.10) channel, but getting the same error.
If I add
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
Or
<category android:name="android.intent.category.DEFAULT" />
(Wich I use both in order to manage clicking on notification and give some payload to the app)
I will get this error.
Error running com.gotyalabs.dollar. Default activity not found
Unable to read manifest info from /home/mariano/AndroidStudioProjects/dollar/build/app/outputs/apk/app.apk.
Finished with error: NoSuchMethodError: The getter 'name' was called on null.
Receiver: null
Tried calling: name

My /android/app/src/main/AndroidManifext.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gotyalabs.dollar" android:installLocation="auto">

    <!-- The INTERNET permission is required for development. Specifically,
         flutter needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.android.vending.BILLING" />

    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="Dolalert"
        android:icon="@mipmap/ic_launcher">
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="[ID]"/>
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- This keeps the window background of the activity showing
                 until Flutter renders its first frame. It can be removed if
                 there is no splash screen (such as the default splash screen
                 defined in @style/LaunchTheme). -->
            <meta-data
                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
                android:value="true" />
            <meta-data
                android:name="com.google.firebase.messaging.default_notification_icon"
                android:resource="@drawable/ic_stat_ic_launcher" />
            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK" />
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>


[UIManager] "Attempted to measure layout but offset or dimensions were NaN" in UIExplorer

Running the June 24 master (e81e29f9282bf8) in Xcode 6.3 with iPhone 6 sim. I have a clean checkout (git clean -dfx) and upon launching the UIManager get a redbox with "Attempted to measure layout but offset or dimensions were NaN" because the width and height are NaN.
@brentvatne is able to repro too. Cleaning the project didn't help either on the off chance that it might have.

@sahrens I bisected this to 5b476d0e41914372e1c53

@brentvatne pointed out that the tests shouldn't have passed. Should RCTLogError calls mean automatic test failure (except in tests that expect intentional errors)?

Travis link for convenience: https://travis-ci.org/facebook/react-native/builds/68349816

RCTLogError calls RedBox which should fail the test, I'm not sure why it didn't happen this time...

Hooking up RCTLogError to fail tests sounds like a good idea.

On Jun 25, 2015, at 11:11 PM, James Ide<EMAIL_ADDRESS>wrote:
@brentvatne pointed out that the tests shouldn't have passed. Should RCTLogError calls mean automatic test failure (except in tests that expect intentional errors)?
—
Reply to this email directly or view it on GitHub.

Getting that in MapView atm.


Update and extend unusual slippage query to all chains

This PR updates the outdated version of the query that was in this repo (the phalcon explorer view link was missing) and also extends it to work for all chains.
Changes have already been applied and can be tested here:
https://dune.com/queries/2332678?start_time_d83555=2024-12-10+00%3A00%3A00&end_time_d83555=2024-12-17+00%3A00%3A00

Nice, would it be possible to add a column with "network + protocol fee" to this table? This would make it easier to review as from the phalcon link I get the total slippage (including fee) from which I have to deduct the fee in order to check if the value align with our slippage accounting.

Will address it in a follow-up PR. Opened a relevant issue
https://github.com/cowprotocol/dune-queries/issues/101


Compass in titlebar

Basically copy get inspired by Origin Realms' top bar that has an icon arrow pointing to where you need to go + some extra objective text.
I'd like this to be done via a component that defines a location to point to as well as said objective text. We could then build another system for selecting quests or something like that really easily by updating this component.
Consider how this would work between sections. Finally, perhaps when parsing location we could calculate the depth and include it in the title as well.

Could you provide an example of what this looks like?

Easiest way is to join their server and see for yourself, I don't have any gifs or images rn sadly.

Think for cross-section it would just show a dot.
So the compass will display the arrow if ur in the correct section, if not its a dot.
Seeing as it would be a 2D element we cant show down/up in any other way so.
Getting a basic implementation for this shouldnt be too bad.
The quest integration would ofc not be done yet


Dynamic imports: Support for different path roots

Feature request

What is the expected behavior?
Following the definition inside the docs:
https://webpack.js.org/api/module-methods/#import-1
We can use static paths inside dynamic imports, to search matching files inside a specific folder / files tree.
Example:
    importApp(path) {
        return import(
            /* webpackInclude: /\/app.mjs$/ */
            /* webpackExclude: /\/node_modules/ */
            /* webpackChunkName: "chunks/[request]" */
            /* webpackMode: "lazy" */
            `../../${path}`
        );
    }

What is motivation or use case for adding/changing the behavior?
There are use cases (especially for the neo.mjs context), where the base path can be in different spots.
In case I want to build the framework repo itself to get split chunks for all apps & examples, I need to path specified above ("../../").
We have the structure:
neo

apps
examples
src

worker

App.mjs

Since the AppWorker is the main entry point for all apps, we need to walk 2 folders upwards.
Now, when we use npx neo-app to generate a new app (workspace), the folder structure is different:
workspace

apps
node_modules

neo.mjs

src

worker

App.mjs

In this case, we want to parse all apps inside the apps top level folder, while ignoring the apps & examples folder inside the neo.mjs repo itself. Ignoring the repo works fine with the webpackExclude here.
To make it work, I needed to create a copy of the AppWorker class, just to change the webpack based imports:
https://github.com/neomjs/neo/blob/dev/buildScripts/webpack/entrypoints/AppWorker.mjs
Extending the real AppWorker class can not work, since in this case, webpack would parse the overridden imports as well.
    importApp(path) {
        if (!Neo.config.isExperimental) { // dist/dev & dist/prod
            return import(
                /* webpackInclude: /\/app.mjs$/ */
                /* webpackExclude: /\/node_modules/ */
                /* webpackChunkName: "chunks/[request]" */
                /* webpackMode: "lazy" */
                `../../../../../${path}`
                );
        } else {
            return import( // dev mode
                /* webpackIgnore: true */
                `../../../${path}`
                );
        }
    }

It actually needs 2 different versions for this one directly (running inside the browser VS using webpack based builds).
It does work fine with the duplicated app worker file, but I think it should be easier to achieve this.
How should this be implemented in your opinion?
I am not 100% sure, what the best approach could be.
We could add a specific variable name, which would need to get resolved inside the webpack based builds.
E.g.: ${basePath}../../${path}
To keep it reasonable, the variable has to get defined inside the same scope.
    importApp(path) {
        let basePath = '';

        if (myCustomEnv === true) { // this is the tricky part => figuring out which version to use
            basePath = '../../../';
        }

        return import(
            /* webpackInclude: /\/app.mjs$/ */
            /* webpackExclude: /\/node_modules/ */
            /* webpackChunkName: "chunks/[request]" */
            /* webpackMode: "lazy" */
            `${basePath}../../${path}`
        );
    }

Are you willing to work on this yourself?
Ugh, if I just had more time. Willing to provide feedback for sure.

You should solve it on application side, it is out of scope webpack

A basePath prefix would only work if it is compile-time-constant, which doesn't seem to be.
You could also change the base path of a "context" (webpack name for dynamic request, like import() with expression), via configuration with the ContextReplacementPlugin. Maybe this helps here?

Hi Tobias,
interesting one. Missed it so far.
In case I add the plugin into the build processes for the app worker using a wildcard regex, it will only get one match (actually 2, but they are almost the same).
It does not really matter though, since it matches the main dynamic imports entry point to lazy load apps.
            new webpack.ContextReplacementPlugin(/.*/, context => {
                if (!insideNeo && context.context.includes('/src/worker')) {
                    context.request = '../../' + context.request;
                }
            })

https://github.com/neomjs/neo/commit/34babc001cc8c545211aac48a87c1e2d753f7318
Thx, it is definitely good enough to remove the app worker build entry point copy.
The results are pretty cool btw., so kudos to the webpack team!
With the central app worker entry point, the neo project now has cross apps split chunks in place. So, we can easily add multiple apps on one page with close to zero overhead and it becomes even more powerful inside the SharedWorkers context => multi browser window apps.
Feel free to take a look at the split chunks output inside the online examples (they are inside the app worker scope): https://neomjs.github.io/pages/node_modules/neo.mjs/dist/production/apps/website/index.html#mainview=examples
Closing this ticket, thanks again!
Best regards, Tobi


Enable source maps for dev build

Reviewer: self
CC: @jdorweiler @MariagraziaAlastra @dharb
Description:
Adding stack traces for the compiled files, both UI and background.

Steps to test this PR:

Automated tests:

[ ] Unit tests
[ ] Integration tests

Reviewer Checklist:

[ ] Ensure the PR solves the problem
[ ] Review every line of code
[ ] Ensure the PR does no harm by testing the changes thoroughly
[ ] Get help if you're uncomfortable with any of the above!
[ ] Determine if there are any quick wins that improve the implementation

PR Author Checklist:

[ ] Get advice or leverage existing code
[ ] Agree on technical approach with reviewer (if the changes are nuanced)
[ ] Ensure that there is a testing strategy (and documented non-automated tests)
[ ] Ensure there is a documented monitoring strategy (if necessary)
[ ] Consider systems implications

Self-merging, since this is straightforward. (The Travis thing is unrelated.)


cupy.asarray/cp.array fails to create from numpy ndarray with structured dtype

Description
Creating a cupy array from a numpy array with structured dtype fails on 10.1.0.
To Reproduce
import numpy as np
import cupy as cp
dtype = np.dtype({'names':['x','y','z'], 'formats': [np.float_]*3})
a = np.empty(100, dtype=dtype)
a_gpu = cp.asarray(a)

Traceback
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [53], in <module>
----> 1 a_gpu = cp.asarray(a)

File ~/anaconda3/envs/neural/lib/python3.8/site-packages/cupy/_creation/from_data.py:76, in asarray(a, dtype, order)
     49 def asarray(a, dtype=None, order=None):
     50     """Converts an object to array.
     51
     52     This is equivalent to ``array(a, dtype, copy=False)``.
   (...)
     74
     75     """
---> 76     return _core.array(a, dtype, False, order)

File cupy/_core/core.pyx:2249, in cupy._core.core.array()

File cupy/_core/core.pyx:2270, in cupy._core.core.array()

File cupy/_core/core.pyx:2398, in cupy._core.core._array_default()

ValueError: Unsupported dtype [('x', '<f8'), ('y', '<f8'), ('z', '<f8')]

Installation
Wheel (pip install cupy-***)
Environment
OS                           : Linux-5.4.0-97-generic-x86_64-with-glibc2.17
Python Version               : 3.8.12
CuPy Version                 : 10.1.0
CuPy Platform                : NVIDIA CUDA
NumPy Version                : 1.22.1
SciPy Version                : 1.7.3
Cython Build Version         : 0.29.24
Cython Runtime Version       : None
CUDA Root                    : /usr/local/cuda-11
nvcc PATH                    : /usr/local/cuda-11/bin/nvcc
CUDA Build Version           : 11030
CUDA Driver Version          : 11060
CUDA Runtime Version         : 11060
cuBLAS Version               : (available)
cuFFT Version                : 10600
cuRAND Version               : 10209
cuSOLVER Version             : (11, 3, 2)
cuSPARSE Version             : (available)
NVRTC Version                : (11, 6)
Thrust Version               : 101100
CUB Build Version            : 101100
Jitify Build Version         : 60e9e72
cuDNN Build Version          : (not loaded; try `import cupy.cuda.cudnn` first)
cuDNN Version                : (not loaded; try `import cupy.cuda.cudnn` first)
NCCL Build Version           : 20909
NCCL Runtime Version         : 21104
cuTENSOR Version             : None
cuSPARSELt Build Version     : None
Device 0 Name                : NVIDIA GeForce GTX 1080
Device 0 Compute Capability  : 61
Device 0 PCI Bus ID          : 0000:01:00.0

Additional Information
This works:
import numpy as np
import cupy as cp
dtype = np.dtype({'names':['x','y','z'], 'formats': [np.float_]*3})
a = np.empty(100, dtype=dtype)
a_gpu = cp.empty(a.shape, dtype=dtype)
a_gpu.set(a)

Same error obtained with cupy.array_api.asarray:
import cupy.array_api
cupy.array_api.asarray(a)

Traceback:
---------------------------------------------------------------------------
File ~/anaconda3/envs/neural/lib/python3.8/site-packages/cupy/array_api/_creation_functions.py:83, in asarray(obj, dtype, device, copy)
     81 try:
     82     runtime.setDevice(device.id)
---> 83     res = np.asarray(obj, dtype=dtype)
     84 finally:
     85     runtime.setDevice(prev_device)

File ~/anaconda3/envs/neural/lib/python3.8/site-packages/cupy/_creation/from_data.py:76, in asarray(a, dtype, order)
     49 def asarray(a, dtype=None, order=None):
     50     """Converts an object to array.
     51
     52     This is equivalent to ``array(a, dtype, copy=False)``.
   (...)
     74
     75     """
---> 76     return _core.array(a, dtype, False, order)

File cupy/_core/core.pyx:2249, in cupy._core.core.array()

File cupy/_core/core.pyx:2270, in cupy._core.core.array()

File cupy/_core/core.pyx:2398, in cupy._core.core._array_default()

ValueError: Unsupported dtype [('x', '<f8'), ('y', '<f8'), ('z', '<f8')]

Hello,
As of now CuPy does not support structured types and it is not a planned feature.
There is some discussion regarding this at: https://github.com/cupy/cupy/issues/2031

This works:

This is concerning that while structured dtypes are unsupported somehow the example works (I didn't test, though). Maybe we missed a check somewhere?

Same error obtained with cupy.array_api.asarray:

Array API does not allow custom dtypes.

@emcastillo Thanks for getting back to me and sorry for the late reply.
I was looking at the section on custom user types and the example on custom_struct. I suppose it is possible to get structured dtype to work with some work?
@leofang I checked the code again and it seems like the custom dtype does work and slicing works but not indexing by names in the structured dtype.
import numpy as np
import cupy as cp
dtype = np.dtype({'names':['x','y','z'], 'formats': [np.float_]*3})
a = np.empty(100, dtype=dtype)
a_gpu = cp.empty(a.shape, dtype=dtype)
a_gpu.set(a)

a_gpu[0] # this works
a_gpu['x'] # this fails

I was looking at the section on custom user types and the example on custom_struct. I suppose it is possible to get structured dtype to work with some work?

Probably yes but we don't plan to work on that feature. We would welcome it if someone wants to give it a try and the implementation is reasonable.

I think the custom dtype is supported in CuPy's custom kernels, which was the first step toward the full support, but not yet across the realm of CuPy in the fully functional sense as in NumPy, whose custom dtype is supported in all of its APIs. Like Emilio suggested, it'd be cool if someone can contribute. I've tried to but got distracted 😓

Ah I see, seems like it could be quite a major undertaking? Unfortunately, I don't know enough about the inner workings of CuPy/NumPy to really take this on. Perhaps we could close this issue as the feature request is already discussed in #2031.


Not Support JCEF: Your environment does not support JCEF, cannot use Markdown Editor

Not Support JCEF: Your environment does not support JCEF, cannot use Markdown Editor
Ref: [https://plugins.jetbrains.com/docs/intellij/jcef.html](JCEF - Java Chromium Embedded Framework)
Android Studio Arctic Fox | 2020.3.1 Patch 3
Build #AI-203.7717.56.2031.7784292, built on October 1, 2021
Runtime version: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1280M
Cores: 12
Registry: external.system.auto.import.disabled=true, ide.balloon.shadow.size=0
Non-Bundled Plugins: com.shuzijun.markdown-editor, org.jetbrains.kotlin

reference #4

People want it easy, fix it get rid of this issue once and for all
Why do people need to jump loops and go through extra afford!!, they will just uninstall and forget about it.


two project folder will create in snap mode

snap function will create project folder , "EnableSnapshot_Executed" also create project folder, so we skip it  ,otherwise will create two project folder.
But one project folder never used.

I removed that call and also calls from other places. Next version will no longer create two project folders.


feat: add optional aws ebs csi driver irsa role

:tada: This PR is included in version 1.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


(PUP-3894) Update license in PMT generate example to match SPDX string

Before this commit, the "examples" string in the generate face still
read "Apache 2.0". After this commit, it reads "Apache-2.0" to be in
line with the behavior of puppet module generate.

:+1:

CLA signed by all contributors.

Merged in 215b5d2.


/packit propose-update failing with kinit issue

/packit propose-update is currently failing on prod with a somewhat not informative Failed to init kerberos ticket:.
Credentials seem to be okay and available, so no clue what's going on here.

@TomasTomecek started looking into this with packit-service/packit#906

an example error I am getting for klist:
bash-5.0# klist
klist: Invalid UID in persistent keyring name while resolving ccache

Wondering if this is still valid...

I think it's not relevant for prod now.

Closing since we have new downstream PRs created until then.


environment specific json

hi all ,
I am using version 0.9.26 and rails 3.2.1,ruby 2.0
is there any feature which allows to load path of json file specific to environment.
ie ENV['GOOGLE_APPLICATION_CREDENTIALS'] = "path/to/file"[Rails.env]
as I want to have different keys for different environment
or some way to convert into yml files like this
development:
credentials same as json file
production:
different credentials
test:
different credentials

Not in this client, but you might be able to do what you're looking for with https://github.com/bkeepers/dotenv


[Questions] Contact Diary: Wrong 'Time of period' (person) & Missing Start-Time to Time-Duration (place)...

Hello,
(I don't want to rule out not having understood something or not being up to date.)
I have two questions about "Contact Diary":
1. [Person]: As far as I know, the Risk-Status-Calculation was changed from 15 minutes... to actually to 9 minutes (see: https://www.coronawarn.app/de/blog/2021-04-16-corona-warn-app-risk-calculation-further-improved/).
But if I edit / add a new person in / to my "Contact Diary" then I have two "15 Minutes" options! Is that correct? Or should the time span be (actually) 9 minutes?
To do (e.g.): Open CWA, select "Diary", select a date, select 'person', select 'a person' or '+ person'...

2. [Place / Location]: When I edit / define a new location, I can determine how long I've been in that location. But wouldn't the - missing - 'start of time', to which the duration refers, be just as important!?
To do (e.g.): Open CWA, select "Diary", select a date, select 'place', select 'a place' or '+ place'...

Possible solution:
(With a duration (as in the example of 23:45 [hh: mm]) the total time could be on the selected day (of the entry); but theoretically only 15 minutes on this day and 23 hours and 30 minutes on the following day.)

Best regards, Joachim.
Android 10 with Android security update: April 1st, 2021
Nokia 7.1, Build: 00WW_4_15C_SP11
CWA version: 2.0.5
ENF:<PHONE_NUMBER>0
NetGuard Pro 2.295

Hey @Jo-Achim
Sorry for answering so late. This got buried by the new releases.

But if I edit / add a new person in / to my "Contact Diary" then I have two "15 Minutes" options! Is that correct? Or should the time span be (actually) 9 minutes?

This is still correct. The time in the contact jourrnal relies more on user judgement, so that users can guess whether they were exposed long enough. So it doesn't have to be the same time as the app's exposure time threshold, it just has to be close.

When I edit / define a new location, I can determine how long I've been in that location. But wouldn't the - missing - 'start of time', to which the duration refers, be just as important!?

Not necessarily. The duration is the most important variable, since that always determines how long someone is potentially exposed. The start time is not as useful as the when doesn't have as much impact on your risk as the how long. Currently, if you stay at a place for 2 consecutive days, you are supposed to make 2 entries for the 2 days.

Corona-Warn-App Open Source Team

@heinezen,
Thanks for the answers.
I'm not sure ... because in my opinion there are several aspects that suggest a change / addition.
1. [Person]:
If the calculation basis for a possible infection has now been changed to 9 minutes, then for good reason. And therefore it would be more correct to store this reason accordingly in the time grid - instead of suggesting that a time span of less than 15 minutes would be safe ’.
2. [Place / Location]:
Many people keep a 'real' calendar from which the respective 'contacts', 'places' etc. can be easily taken; in this respect, the calendar in the CWA would actually be superfluous.
As a reminder for those who tend not to keep a 'real' calendar, of course, in addition to the duration of the stay, the start of the stay is also included (I would never come up with the idea of defining a duration without defining its start ;-)). After all, it might make a difference whether I was at a certain place on dd.MM.yyyy from 0:15 a.m. or at 11:30 p.m.
But, as I said, my questions should rather be an indication that something could be missing.
I also realize that there are more important things about the CWA at the moment - for example the subject of vaccination certificates / vaccination card.
In this sense, Joachim.

Person entry now show 10 min instead of 15 min. For places start time is not required


refactor vocabulary repository structure for v1

update URIs to pattern: https://w3id.org/isample/vocabulary/{vocabtoken}/1.0/
vocabularies are published with v1.0 on Research Vocabularies Australia
only the base iSamples vocabularies will be in the iSamples/vocabularies repo, with each vocabulary in a subfolder inside the vocabularies/src folder.
move extension vocabularies to new repositories for community specific metadata profiles, with the idea that conventions for different communities will be under different stewardship.  The profiles might include specific extension vocabularies, possible schema extensions, and validation rules.
Three new repos are suggested.
metadata_profile_biology
metadata_profile_earth_science
metadata_profile_archaeology

work is in progress on this.  I have been updating the github actions based on the actions in this vocab repo.

I'd suggest renaming the repos - these are not metadata profiles, they are vocabularies.

There's also a huge amount of baggage with each that seems unnecessary. Seems like all that's needed is the .ttl file and rendered output for human consumption. Each vocab repo should stand alone but clearly identify other vocabs that it may extend.


Add build parameters to run docsTest with configuration cache enabled

As we're getting closer to declaring the configuration cache a stable
feature, we have to make sure that our documentation snippets are
compatible with the configuration caching. This commit adds basic
infrastructure of testing doc snippets and samples with the
configuration cache enabled, similar to existing configCacheIntegTest
integration test tasks.
To run the docs test with CC enabled, one should specify the property:
./gradlew -PenableConfigurationCacheForDocsTests=true docs:docsTest

The subprojects/docs/build.gradle contains the ignorelist of tests
that are known to be broken. One could run tests from this list only by
adding -PrunBrokenConfigurationCacheDocsTests=true to the command
above.
Making a separate task for the docs test with CC was considered, but
turned out to be a very non-trivial task due to the amount of
configuration applied to the docsTest by the supporting binary
plugins that have to be replicated.
This is a first step of #21027.

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

Error while scheduling pre-tested commit, please contact the administrator.

@bot-gradle test and merge

Error while scheduling pre-tested commit, please contact the administrator.

@bot-gradle test and merge

Error while scheduling pre-tested commit, please contact the administrator.

@bot-gradle test and merge

OK, I've already triggered a build for you.


[ColorPicker] Hex input field: 3 digits value is interpreted incorrectly

Microsoft PowerToys version
0.51.1
Running as admin

[ ] Yes

Area(s) with issue?
ColorPicker
Steps to reproduce
Open adjust color dialoge in CP Editor ux. Then type a 3 chars hex color value into text box.
✔ Expected Behavior
The hex code is converted in background to 6 digits and will be represented correctly: CF0 => CCFF00
See this note on w3c.org: https://www.w3.org/TR/css-color-3/#rgb-color
❌ Actual Behavior
The three values are interpreted as the last three values of a six value hex code.

Other Software
No response
technical implementation

This can be fixed by ~either not accepting 3 values input or~ converting three values input to 6 values input: https://stackoverflow.com/questions/10230331/how-to-convert-3-digit-html-hex-colors-to-6-digit-flex-hex-colors
If we add an converter we should update the text box content not bevor the user changes the focus or selects the color. (Otherwise we break the input of six values hex code.)

@niels9001
This bug we have exists in the official WinUI 3 control too. Do you think we should open an issue if we have the fix in our code ready?

@niels9001 , @crutkas
I have opened https://github.com/microsoft/microsoft-ui-xaml/issues/6499 for the winui3 control.

The was fixed in in 0.53.  Head over to https://aka.ms/installpowertoys to try it out


ORM: how to clone object?

Is there an elegant way to copy object? There is no clone() or copy() method in api, how can i create, for example, $pixie_twin from $pixie?

Version 2 or 3 ?

I'm on 2 now, but, please, describe both of them )

In 2, just use the 'clone' PHP statement: $query2 = clone $query;
In 3 there really is no need to do it, since the entities should be the same instance anyway, and the queries don't have any state at all =)


Add utf8 package

This package only supports Chez/Racket for now, but it would be nice to have it support other backends. I pointed this out in it's brief field.

Thanks.


Dev stackerise access agent

Addition of a stack manager input config file for the access agent, together with minimal documentation of how to use.

In the input config file, the endpoints are defined as:
"STOREROUTER_ENDPOINT=http://<STACK NAME>-blazegraph:8080/blazegraph/namespace/storerouter/sparql",
 "RDB_STOREROUTER_ENDPOINT=http://<STACK NAME>-blazegraph:8080/blazegraph/namespace/storerouterrdb/sparql"]

but the Access Agent uses the default kb namespace where the triples are uploaded and as for the RDBAccessAgent the ontordbrouter namespace needs to be either manually created or the one on theworldavatar can be used.
Does this ensure the same functionality?

In the input config file, the endpoints are defined as:
"STOREROUTER_ENDPOINT=http://<STACK NAME>-blazegraph:8080/blazegraph/namespace/storerouter/sparql",
"RDB_STOREROUTER_ENDPOINT=http://<STACK NAME>-blazegraph:8080/blazegraph/namespace/storerouterrdb/sparql"

but the Access Agent uses the default kb namespace where the triples are uploaded and as for the RDBAccessAgent the ontordbrouter namespace needs to be either manually created or the one on theworldavatar can be used. Does this ensure a similar functionality?

The kb and ontordbrouter namespaces are defaults, but can be overridden. Also, the namespaces in the above snippet are entirely arbitrary, so can be changed to the defaults if desired. I have tested this (at least for one basic case) successfully.


Different results between CP2K and VASP

Hi
I used the phonopy to do the phono calculations based on two different interfaces (CP2K and VASP) for the same structure(Mono-layer Ni₃(HIB)₂ (HIB: hexaiminobenzene). But the results are totally different, as the figures shown. The first one is VASP results and second one is CP2K results.
I checked the input files and test the examples, they looks good, only these 2D-layered structures has similar problems.
Could you please help me to understand this problems?
Thank you

Please send your question to the phonopy mailing list.


Ensemble not using custom CV

Hi,
It appears that the ensemble code does not use CV when provided to automl settings.  In my case, my data requires a custom CV:
                "eval_method": "cv",
                "split_type": cv,

When I ensemble with FLAML, the results are worse because it's not passing the cv iterator.  Thanks for your consideration.

Hi @jmrichardson, yes, what you said is correct. Thank you for raising this issue. Can you please make a PR to allow using custom cv in ensemble?
To enable it, presumably you can just pass the custom cv to the [stacker in flaml] (https://github.com/microsoft/FLAML/blob/main/flaml/automl.py#L3543) via the cv keyword argument here. cv is supported in sklearn StackingClassifier:
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.StackingClassifier.html
You can ask @skzhang1 or me for help if needed.
Thank you!


Add information about signing of code commits

looks great and also fixes style issues, will merge it now


Update Compute Library to 21.11 release

Updates the version of Compute Library to the 21.11
This release adds support for bf16 fast-maths-mode to additional
oneDNN primitives - inner product and matmul.
oneDNN 2.4 build is patched to expose this functionality to TensorFlow
TF_ENABLE_ONEDNN_OPTS flag (runtime selection of oneDNN backend) is
enabled on AArch64 for builds with --config=mkl_aarch64 set.

Hi @penpornk,
This PR updates the Compute Library build and enables the TF_ENABLE_ONEDNN_OPTS flag (Note: this doesn't impact the 'stock' builds on AArch64, but will allow runtime selection of the oneDNN+ACL backend for mkl_aarch64 build.
Now that oneDNN 2.5 is out, we will probably need another patch to move the oneDNN version for the mkl_aarch64 build from 2.4 to 2.5, assuming that's the intent for the x86 build.
I'm hoping to be able to get this all done for the 2.8 release


Confusing documentation

indentedSyntax - [true | false], false by default. Compiles files with the .sass extension instead of .scss in the src directory.

should read

indentedSyntax - [true | false], false by default. If true compiles files with the .sass extension instead of .scss in the src directory.

This is open source, so feel free to make Pull Request to improve docs!

Fixed here: https://github.com/sass/node-sass-middleware/pull/127

on behalf of all the easily confused dummies: ty.


pipeline-init fails on postgis on OSX

$ pipeline-init -D /Users/xxx/pg_data/
...
loading PipelineDB extensions ... FATAL:  could not load library "/usr/lib/pipelinedb/lib/pipelinedb/postgis-2.2.so": dlopen(/usr/lib/pipelinedb/lib/pipelinedb/postgis-2.2.so, 10): Library not loaded: /usr/local/lib/libjson-c.2.dylib
	  Referenced from: /usr/lib/pipelinedb/lib/pipelinedb/postgis-2.2.so
	  Reason: image not found
STATEMENT:  CREATE EXTENSION postgis;

system:
$/usr/bin/pipeline-ctl --version
pg_ctl (PostgreSQL) 9.4.4
$uname -a
Darwin xxxxx 14.5.0 Darwin Kernel Version 14.5.0: Mon Aug  3 19:52:24 PDT 2015; root:xnu-2782.40.9~4/RELEASE_X86_64 x86_64

Also, I used this pkg image from downloads:
pipelinedb-0.8.0-osx-x86_64.pkg

Hi @kgorman, can you install libjson-c and try again?
brew install json-c

looks like it needed:
brew install json-c
brew install gdal

Works now. Thx!

Great, we'll add those to the docs.


Tolerate non-consecutive camera IDs in Metashape doc.xml

When I add photos to a Metashape project via the Metashape Python API, Metashape assigns the photos non-consecutive IDs in the doc.xml files in chunk.zip and frame.zip (e.g. camera ID order is 0, 6, ..., 217, 7, 2), like this in chunk.zip:
<cameras next_id="218" next_group_id="0">
  <camera id="0" sensor_id="0" component_id="0" label="80m/e-w/card01/100MEDIA/DJI_0001.JPG">
    <transform>0.99998701656831557 0.0028841796441090185 -0.0042009763842519648 9.9441357377157686 0.0028347107523578052 -0.9999271326091691 -0.011734303854713239 7.3210543938105879 -0.0042345141103794608 0.011722242950253939 -0.9999223259386022 -3.1737541528978355 0 0 0 1</transform>
    <rotation_covariance>3.382357806810951e-07 -5.7790069103074204e-09 3.8407822310166688e-08 -5.7790069103074196e-09 3.5930728455208739e-07 -2.0618183974681665e-08 3.8407822310166695e-08 -2.0618183974681665e-08 1.7813753010661026e-07</rotation_covariance>
    <location_covariance>2.2496983635969503e-05 2.4584824399324627e-07 2.2739878241628248e-06 2.4584824399324627e-07 2.2217735181210032e-05 1.6271417981424331e-06 2.2739878241628248e-06 1.6271417981424331e-06 3.2482119073292098e-05</location_covariance>
    <orientation>1</orientation>
    <reference x="-120.87625468" y="39.504056220000002" z="1530.8599999999999" yaw="180.50000000000003" pitch="0" roll="-0" sxyz="3" enabled="true" rotation_enabled="false"/>
  </camera>
  <camera id="6" sensor_id="0" component_id="0" label="80m/n-s/card02/100MEDIA/DJI_0001.JPG">
    <transform>0.99998701656831501 0.0028841796441090935 -0.0042009763842519501 9.9441357377157669 0.0028347107523578052 -0.9999271326091701 -0.011734303854713281 7.3210543938105888 -0.0042345141103794452 0.011722242950253963 -0.9999223259386022 -3.1737541528978341 0 0 0 1</transform>
    <rotation_covariance>3.3823578068109129e-07 -5.7790069103084172e-09 3.8407822310165815e-08 -5.7790069103084172e-09 3.5930728455208665e-07 -2.0618183974681449e-08 3.8407822310165815e-08 -2.0618183974681446e-08 1.7813753010661044e-07</rotation_covariance>
    <location_covariance>2.2496983635969069e-05 2.4584824399338417e-07 2.2739878241628163e-06 2.4584824399338417e-07 2.2217735181209819e-05 1.6271417981425506e-06 2.2739878241628163e-06 1.6271417981425506e-06 3.248211907329199e-05</location_covariance>
    <orientation>1</orientation>
    <reference x="-120.87625468" y="39.504056220000002" z="1530.8599999999999" yaw="180.50000000000003" pitch="0" roll="-0" sxyz="3" enabled="true" rotation_enabled="false"/>
  </camera>
...
  <camera id="217" sensor_id="0" component_id="0" label="120m/101MEDIA/DJI_0531.JPG">
    <transform>0.99996539142686891 -0.0067351375060846208 -0.004884042514583754 9.8635079522927747 -0.0067816826292824428 -0.99993114313539055 -0.0095769394206282315 6.3401616333279716 -0.0048192042108442107 0.0096097300027017437 -0.99994221251032767 -2.9750451818927339 0 0 0 1</transform>
    <rotation_covariance>3.3872880550154766e-07 -8.7104751904441077e-09 3.7905004911731205e-08 -8.7104751904441093e-09 3.5868167985957161e-07 -2.1360173688847741e-08 3.7905004911731199e-08 -2.1360173688847744e-08 1.7829586802007341e-07</rotation_covariance>
    <location_covariance>2.2653641653937606e-05 2.6906642567569667e-07 2.3035706707897477e-06 2.6906642567569667e-07 2.2464024684659733e-05 1.7220242769808478e-06 2.3035706707897477e-06 1.7220242769808478e-06 3.3024766204228408e-05</location_covariance>
    <orientation>1</orientation>
    <reference x="-120.87625531" y="39.504159270000002" z="1533.3" yaw="180.90000000000001" pitch="0" roll="-0" sxyz="3" enabled="true" rotation_enabled="false"/>
  </camera>
  <camera id="7" sensor_id="0" component_id="0" label="80m/n-s/card02/100MEDIA/DJI_0533.JPG">
    <transform>0.9999912093649832 0.00093564286324621104 -0.0040872686712123754 10.029258733004566 0.00088405461559082354 -0.99992015903068709 -0.012605316794247121 8.32690846311732 -0.0040987364144173151 0.012601592616773908 -0.99991219625691419 -3.3618481195999306 0 0 0 1</transform>
    <rotation_covariance>3.3943108385889885e-07 -2.1686710219705553e-09 3.8540117398656256e-08 -2.1686710219705553e-09 3.6012937373815209e-07 -2.059378467201938e-08 3.8540117398656262e-08 -2.059378467201938e-08 1.7825829108270417e-07</rotation_covariance>
    <location_covariance>2.2712672893900897e-05 2.4461521853793304e-07 2.3109408792908477e-06 2.4461521853793304e-07 2.2426556073962479e-05 1.5888784666656603e-06 2.3109408792908477e-06 1.5888784666656603e-06 3.2619872671996441e-05</location_covariance>
    <orientation>1</orientation>
    <reference x="-120.87625392" y="39.503950430000003" z="1528.5599999999999" yaw="180.60000000000002" pitch="0.099999999999993788" roll="-0" sxyz="3" enabled="true" rotation_enabled="false"/>
  </camera>
  <camera id="2" sensor_id="0" component_id="0" label="80m/e-w/card02/100MEDIA/DJI_0534.JPG">
    <transform>0.99998487959520177 0.0032029309442738463 -0.0044701022736280292 10.108587057776701 0.003150900342086399 -0.99992776962708751 -0.011598592829852674 9.3409889507271764 -0.0045069288883586179 0.011584332607650858 -0.99992274243064916 -3.5515074174426515 0 0 0 1</transform>
    <rotation_covariance>3.4261537492218614e-07 1.0541811586057535e-09 3.865605722821303e-08 1.0541811586057535e-09 3.6145064875743848e-07 -2.072899890902075e-08 3.865605722821303e-08 -2.0728998909020756e-08 1.7854458049838955e-07</rotation_covariance>
    <location_covariance>2.3357112059966629e-05 2.0681357839981913e-07 2.4299821694198624e-06 2.0681357839981913e-07 2.3066647765014295e-05 1.5989119761509606e-06 2.4299821694198624e-06 1.5989119761509606e-06 3.3431628868477257e-05</location_covariance>
    <orientation>1</orientation>
    <reference x="-120.87625205000001" y="39.503843070000002" z="1526.24" yaw="180.50000000000003" pitch="0" roll="-0" sxyz="3" enabled="true" rotation_enabled="false"/>
  </camera>
...
</cameras>

This seems to confuse EasyIDP, which throws an IndexError when trying to read the .psx file and associated XMLs, as soon as it reaches the first non-consecutive camera ID:
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
/tmp/ipykernel_4218/3594889881.py in <module>
----> 1 ms = idp.Metashape(msproj, chunk_id=0)

~/anaconda3/lib/python3.9/site-packages/easyidp/metashape.py in __init__(self, project_path, chunk_id)
    105         self.photos = self.photos
    106
--> 107         self.open_project(project_path, chunk_id)
    108
    109     def __repr__(self) -> str:

~/anaconda3/lib/python3.9/site-packages/easyidp/metashape.py in open_project(self, project_path, chunk_id)
    172         if project_path is not None:
    173             self._open_whole_project(project_path)
--> 174             self.open_chunk(self.chunk_id)
    175         else:
    176             if chunk_id is not None:

~/anaconda3/lib/python3.9/site-packages/easyidp/metashape.py in open_chunk(self, chunk_id, project_path)
    244
    245         if chunk_id in self._project_chunks_dict.keys():
--> 246             chunk_content_dict = read_chunk_zip(
    247                 self.project_folder,
    248                 self.project_name,

~/anaconda3/lib/python3.9/site-packages/easyidp/metashape.py in read_chunk_zip(project_folder, project_name, chunk_id, skip_disabled, return_label_only)
   1161
   1162     # change photo xml to idp object
-> 1163     photos = _photoxml2object(
   1164         xml_tree, sensors
   1165     )

~/anaconda3/lib/python3.9/site-packages/easyidp/metashape.py in _photoxml2object(xml_tree, sensors)
   1222             camera = _decode_camera_tag(camera_tag)
   1223             camera.sensor = sensors[camera.sensor_id]
-> 1224             photos[camera.id] = camera
   1225     else:
   1226         # judge if has group with the same name

~/anaconda3/lib/python3.9/site-packages/easyidp/__init__.py in __setitem__(self, key, item)
     51                     self.item_label[key] = key
     52             else:
---> 53                 raise IndexError(f"Index [{key}] out of range (0, {len(self.item_label)})")
     54
     55         elif isinstance(key, str):

IndexError: Index [6] out of range (0, 1)

Here is a Metashape project file that contains an example of non-consecutive camera IDs and causes the error described above. (I deleted the point cloud and thumbnails from it to reduce file size.)
Would it be possible to add tolerance for non-consecutive camera IDs when reading the doc.xml files in chunk.zip and frame.zip?

it's quite uncommon to have such case.
For confirmation, for your script, it is just re-ordering the sequence randomly? ( the correct order can be produced by sorting by id); Or even after sorting, still some id missing?

Ah, ok -- how would I sort the photos by ID? Would I parse the XML file, sort the data, and then re-write to XML? Or are you aware of a way to sort with the Metashape Python API?
My script is not re-ordering the sequence -- this is how the photos are added initially by the Metashape Python API. Here are the lines I use for this:
a = glob.iglob(os.path.join(photo_path,"**","*.*"), recursive=True)
b = [path for path in a]
photo_files = [x for x in b if (re.search("(.tif$)|(.jpg$)|(.TIF$)|(.JPG$)",x) and (not re.search("dem_usgs.tif",x)))]
doc.chunk.addPhotos(photo_files)

They appear to get added in alphabetical order based on image file base name, but the IDs are assigned incrementally based on the  full path. (The full path sorting is different than the base name sorting because the files are stored across several folders). I can get around this problem by renaming the image files and putting them in a single folder before adding them to the Metashape project. However, a common use case for me is to align one set of photos, then add a new set of photos to align to the original set. When I do this, the new photos are added to the top of the XML file, but their IDs resume from where the last set of photos left off.

I have checked the xml file in the project your shared, it seems to have sequential ids except their order is mixed. I can sort them in the EasyIDP and you don't have to worry about it.
Apologize currently I could not have time to deal with it until next Thursday. If you are very urgent about this function immediately, renaming and putting them into a single folder could help before it is fixed.

OK thank you! That will be very helpful. It's not urgent

reproduced this by merging chunks

@youngdjn passed on the project you shared, please let me know if you go problem again on your data

Thank you! I really appreciate it.


caddy builder doesn't work

j.builders.web.caddy.install(reset=True)
        + go get github.com/caddyserver/caddy/caddy@master
        go: finding github.com/caddyserver/caddy/caddy master
        go: finding github.com/caddyserver/caddy master
        build github.com/caddyserver/caddy/caddy: cannot load crypto/ed25519: cannot find module providing package
            crypto/ed25519
--TRACEBACK------------------
<stdin> in <module>
    1
/sandbox/lib/jumpscale/Jumpscale/core/BASECLASSES/BuilderBaseClass.py in wrapper_action
    163    builder.build()
/sandbox/lib/jumpscale/Jumpscale/core/BASECLASSES/BuilderBaseClass.py in wrapper_action
    178    res = self.apply_method(func, kwargs)
/sandbox/lib/jumpscale/Jumpscale/core/BASECLASSES/BuilderBaseClass.py in apply_method
    93    return func(**kwargs)
/sandbox/lib/jumpscale/JumpscaleBuildersExtra/web/BuilderCaddy.py in build
    130    self.get("github.com/caddyserver/caddy/caddy@%s" % self.VERSION)
/sandbox/lib/jumpscale/JumpscaleBuilders/runtimes/BuilderGolangTools.py in get
    99    self._execute("go get %s %s" % (flags, url), timeout=10000, die=die)
/sandbox/lib/jumpscale/Jumpscale/core/BASECLASSES/BuilderBaseClass.py in _execute
    387    retry=retry,
/sandbox/lib/jumpscale/Jumpscale/sal/process/SystemProcess.py in execute
    117    retry=retry,
/sandbox/lib/jumpscale/Jumpscale/core/InstallTools.py in execute
    2304    raise Tools.exceptions.Base(msg)
-----------------------------

are we using caddy anymore in the company?


make error

[100%] Building CXX object CMakeFiles/yolo_mark.dir/main.cpp.o
cc1plus: error: unrecognized command line option "-std=c++11"
make[2]: *** [CMakeFiles/yolo_mark.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/yolo_mark.dir/all] Error 2
make: *** [all] Error 2

Hi
I am also facing Same problem.  Does anyone resolved it?


No any way to determine whether signup or login while doing social login

Hello to the awesome developers of this package!
I want to provide a "is_signup" field to the response after calling "/dj-rest-auth/google/" API endpoint. I can pass custom messages  by overriding "post" method or "get_response" method but I cannot determine whether the user was created  or the user just logged in for "is_signup" flag.
Could you please consider my request and provide me a good solution?

@iMerica Please have a look on this matter!


((Another)) History improvement

Score of svart-dev vs svart-master: 368 - 284 - 306  [0.544] 958
...      svart-dev playing White: 189 - 124 - 165  [0.568] 478
...      svart-dev playing Black: 179 - 160 - 141  [0.520] 480
...      White vs Black: 349 - 303 - 306  [0.524] 958
Elo difference: 30.5 +/- 18.2, LOS: 99.9 %, DrawRatio: 31.9 %
SPRT: llr 2.98 (101.3%), lbound -2.94, ubound 2.94 - H1 was accepted

A lot of thanks to @cosmobobak for the help on this.


Monitoring health check support

Add /health/liveness endpoint to probe whether service is healthy or not. As of right now it only checks for database availability.

This was tested correct?

Yep. Try it out. Run it with docker-compose go check http://localhost:3030/health/liveness. Then stop db container from Docker Desktop, try the same url again and it should show you "status": "DOWN". In addition to that you'll see errors in console as docker-compose is doing health check periodically.
Should probably package api.ts and monitoring-api.ts into api folder, but import from 'api/api' seems a bit weird (should probably rename api.ts to something else, but I couldn't come up with a good name). Maybe you can think of something.

Alright, nice.


Proposal: use container DNS for Windows containers in Docker Desktop instead of localhost

In what area(s)?

/area runtime

/area operator

/area placement

/area docs

/area test-and-release

Describe the proposal
Current issue

Our services run in Windows-based Docker containers
Dev teams user Docker Desktop on Windows for local development
We cannot use Dapr with docker-compose together with our Windows-based services, because Docker Desktop on Windows does not support sharing network between containers via network_mode: service:[name] model - it only works for Linux containers. Developers are forced to install Dapr locally and run it via CLI manually, configure ports, make sure ports between different Dapr instances don't overlap, coordinate Dapr versions etc - that creates a lot of pain and makes the user experience with Dapr really bad
Dapr assumes it runs in sidecar mode and always expects a service to be available on localhost on the port specified by app-port. If Dapr and Windows container are running via docker-compose on the same network, Dapr still won't discover the service, because the service is not on Dapr's localhost

Proposal
For Windows-based workloads in docker-compose it would be great to tell Dapr to use container DNS instead of localhost. For exampe, next to app-port and app-id arguments, one could specify app-service-name argument - the service name of the docker-compose, that Dapr can use to resolve to containers IP on the same Docker network
Sampe docker-compose config:
services:
  my-service:
    image: myimage
    ports:
      - 5020:5020
    networks:
      - mynetwork
  dapr.my-service:
    image: daprio/daprd:1.9.1
    networks:
      - mynetwork
    depends_on:
      - my-service
    command: [ "./daprd",
               "-app-id", "my-service-id",
               "-app-port", "5020",
               "-app-service-name", "my-service",
               "-app-protocol", "http",
               "-components-path", "/components",
               "-config", "/configuration/sample.yaml"
    ]
    volumes:
      - ./dapr/components/:/components
      - ./dapr/configuration/:/configuration

Agree, this is definitely a missing feature we desperately need!


Fix name of menu of custom reports

we had name 'true' instead of correct name for folder for custom reports
variable @sb[:rpt_title] has been badly populated.
before

after

@gtanzillo @himdel @mzazrivec

@lpichler can you verify that this issue isn't seen in 5.5?  If so, we'll need a BZ for it.  Thx, Dan

@dclarizio it was introduced in 78c58649 2 weeks ago, so no BZ should be necessary..

@dclarizio yes, verified, no issue in 5.5.z


Support display of links and unlinked mentions

Hey, first of all thanks for your contribution. Super cool plugin with tremendous potential!
Is your feature request related to a problem? Please describe.
It would be really useful, if the graph could optionally connect markdown nodes that are linked to each other, or which mention each other.
Describe the solution you'd like
Similar to how a markdown node with two tags is connected to both, if there is a link or unlinked mention between two markdown nodes there would be a connector line. Ideally, there would be a user preference in the global settings to enable one or both.
In the first iteration, no new visuals would be necessary, although offering an option to customize the connector line's color or other visual aspects might make sense in the medium-term. The user could define visuals depending on whether the relation is markdown to tag, markdown-markdown (linked) or markdown-markdown (unlinked mention).

Thanks for your feedback! Could you clarify what you mean by "unlinked mention between two markdown nodes"? While we can easily detect explicit links between markdown files, it's less clear how we should identify and validate unlinked mentions?

Hi @kctekn
Thanks for your response.
As I assume you know, there are explicit links and mentions in Obsidian under the "incoming links" and "outgoing links" sections. Unlinked mentions play an important role in my workflow, because they enable interoperability with a certain  third-party app. So I only use direct links in some scenarios, and mostly rely on unlinked mentions.
I'm not knowledgeable enough about how Obsidian works under the hood to comment on how the unlinked mentions could best be detected. It's possible that they are created dynamically when the user opens the note, and aren't part of the index, which might make it challenging to incorporate them.
Either way, I think many users would benefit from direct links between markdown notes being included in the graph, and I would be extra happy in case there's a way to also include the unlinked mentions :)
Keep up the incredible work!

Hey,
just to clarify the logic for unlinked mentions: Document A is shown in the unlinked mentions of document B, if the content of note B contains the exact title of document A.
So it seems to be a clear-cut logic, doesn't it?
Anyway, I think displaying unlinked mentions would be one of those features, which a subset of users find extremely useful, and others wouldn't use. So if implemented, it would be good to make it optional via a global preference.
Personally, I would also like to be able to set a different color for the line connecting mentioned documents, to distinguish them from explicitly linked ones.

Thanks for the suggestion! I understand you'd like to see unlinked mentions where Document B displays a mention of Document A if Document B's content contains the exact title of Document A. While this logic seems straightforward, we need to consider potential issues, such as common note titles (like "meeting notes" or "research", "index", "readme" etc). These could lead to a cluttered graph with many spurious connections, potentially cluttering the view rather than clarifying it, isn't it?

Yeah, that's a valid concern for sure. It really depends on each user's needs, I think. For example, all of my notes have unique titles, so I wouldn't encounter this issue.
I wonder if there could be additional filters in the right-hand bar. It's already possible to modify the way orphans are displayed. Perhaps a similar filter could enable showing and hiding of links and unlinked mentions as needed.

I agree, and we'll consider adding those filters in the future especially after some careful consideration and implementation!


Test new ACA-py images

Test the new ACA-py images that are built by the ACA-py release process.
https://github.com/hyperledger/aries-cloudagent-python/pkgs/container/aries-cloudagent-python

Testing done as part of https://github.com/hyperledger/aries-cloudagent-python/pull/2130