Exception in Log "TypeError: The "key" argument ... " - no functional issue visible

I see an Error in the Log each time when starting child bridge. But everything works as expected.

To Reproduce:
not sure how to reproduce.
Expected behavior:
Everything works as expected.
Logs:
8/18/2024, 8:32:58 PM] [homebridge-midea-platform] [Entfeuchter] Restoring existing accessory from cache: Entfeuchter
[8/18/2024, 8:32:58 PM] [homebridge-midea-platform] [Entfeuchter] Cached device, using token/key from config file
[8/18/2024, 8:33:00 PM] [homebridge-midea-platform] [Entfeuchter] Starting network listener.
[8/18/2024, 8:33:00 PM] [homebridge-midea-platform] [Entfeuchter | refresh_status] Recoverable error:
TypeError: The "key" argument must be of type string or an instance of ArrayBuffer, Buffer, TypedArray, DataView, KeyObject, or CryptoKey. Received undefined
    at prepareSecretKey (node:internal/crypto/keys:596:11)
    at Cipheriv.createCipherWithIV (node:internal/crypto/cipher:138:9)
    at new Cipheriv (node:internal/crypto/cipher:243:3)
    at createCipheriv (node:crypto:147:10)
    at LocalSecurity.aes_cbc_encrpyt (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaSecurity.ts:169:34)
    at LocalSecurity.encode_8370 (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaSecurity.ts:241:34)
    at MideaA1Device.send_message_v3 (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaDevice.ts:207:42)
    at MideaA1Device.send_message (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaDevice.ts:181:18)
    at MideaA1Device.build_send (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaDevice.ts:214:16)
    at MideaA1Device.refresh_status (/homebridge/node_modules/homebridge-midea-platform/src/core/MideaDevice.ts:227:22)
    at MideaPlatform.addDevice (/homebridge/node_modules/homebridge-midea-platform/src/platform.ts:187:24)
[8/18/2024, 8:33:00 PM] [homebridge-midea-platform] [Entfeuchter] Invalid payload length: 29628 (0x73bc)
[8/18/2024, 8:33:06 PM] [homebridge-midea-platform] All configured devices added to Homebridge
[8/18/2024, 8:33:10 PM] [homebridge-midea-platform] Child bridge process ended
[8/18/2024, 8:33:10 PM] [homebridge-midea-platform] Process Ended. Code: 1, Signal: null
[8/18/2024, 8:33:17 PM] [homebridge-midea-platform] Restarting Process..

Plugin Config:
{
    "devices": [
        {
            "type": "Dehumidifier",
            "name": "Entfeuchter",
            "id":<PHONE_NUMBER>69071,
            "advanced_options": {
                "ip": "10.0.xx.xx",
                "token": "token",
                "key": "key"
            },
            "A1_options": {
                "temperatureSensor": true,
                "waterTankSensor": "Leak Sensor"
            }
        }
    ],
    "_bridge": {
        "username": "0E:38:.....",
        "port": 41600
    },
    "platform": "midea-platform"
}

Screenshots:

Environment:

Plugin Version: v1.1.1
Homebridge Version:v1.8.4
Node.js Version: Node.js Version: v20.12.2
NPM Version: 10.5.0
Operating System:  Ubuntu Jammy (22.04.4 LTS) (in Docker)
--

Could you please try this with the latest beta version, v1.1.2-beta.5?

Hi - thanks for the quick reaction. I tested it with 1.2.0-beta3 - error is gone:
[9/1/2024, 5:46:02 PM] [homebridge-midea-platform] Loaded homebridge-midea-platform v1.2.0-beta.3 child bridge successfully
[9/1/2024, 5:46:03 PM] [homebridge-midea-platform] Loading accessory from cache: Entfeuchter
[9/1/2024, 5:46:03 PM] [homebridge-midea-platform] Start device discovery...
[9/1/2024, 5:46:03 PM] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.x","port":6444,"id":153931628269071,"model":"00000Q12","sn":"000000P00XXXXXX","name":"net_a1_D1F0","type":161,"version":3}
[9/1/2024, 5:46:03 PM] [homebridge-midea-platform] [Entfeuchter] Restoring existing accessory from cache: Entfeuchter
[9/1/2024, 5:46:03 PM] [homebridge-midea-platform] [Entfeuchter] Cached device, using token/key from config file
[9/1/2024, 5:46:05 PM] [homebridge-midea-platform] [Entfeuchter] Does not supports the protocol MessageQuerySubtype, ignored, error: Error: [Entfeuchter | refresh_status] Error when receiving data from device.
[9/1/2024, 5:46:06 PM] [homebridge-midea-platform] [Entfeuchter] Does not supports the protocol MessageQuery, ignored, error: Error: [Entfeuchter | refresh_status] Error when receiving data from device.
[9/1/2024, 5:46:06 PM] [homebridge-midea-platform] [Entfeuchter] Refresh failed.
[9/1/2024, 5:46:07 PM] [homebridge-midea-platform] [Entfeuchter] Does not supports the protocol MessageQuerySubtype, ignored, error: Error: [Entfeuchter | refresh_status] Error when receiving data from device.
[9/1/2024, 5:46:07 PM] [homebridge-midea-platform] [Entfeuchter] Starting network listener.
[9/1/2024, 5:46:11 PM] [homebridge-midea-platform] All configured devices added to Homebridge

I'm glad to hear it!
I see you also have the same warnings as in #93. I will close this issue, and if you are interested in that one, please follow the other issue.


Fix: Renderer Component in examples/01-react Now Supports FragmentView

Overview
This pull request addresses an issue found in the 01-react example of the reka.js library, where the preview pane was not displaying any content.
Changes Made

Extended the Renderer component to handle instances of FragmentView.
Ensured that FragmentView children are properly rendered.

Steps to Reproduce the Issue

Clone the reka.js repository.
Navigate to examples/01-react.
Run npm install to install dependencies.
Run npm run dev to start the development server.
Observe that previously, the left side (code editor) worked, but the preview pane on the right was empty.

Resolved Issues

The preview pane now correctly displays the output corresponding to the code written in the editor.

Testing

Manual testing was conducted to ensure that the preview pane functions as expected with the inclusion of FragmentView.

Issue reference
https://github.com/prevwong/reka.js/issues/136
Thank you for considering this contribution. I hope it helps enhance the functionality and user experience of the reka.js library.

@prevwong Hi mate, I'm sorry to bother you, but I think I've solved an issue in the example. Would appreciate you taking a look! :)

I added the fix to the other places that doesn't take into account the type of FragmentView


Update dependency (imlib -> brainglobe-utils)

pre-commit.ci run

@alessandrofelder can you check a23cfddc85003aa282dc6e10cfbb1f4af9e61ac7? I added this to please mypy, but not sure if it's valid.

Also tests are failing, but that's known about - #157

https://github.com/brainglobe/cellfinder-napari/commit/a23cfddc85003aa282dc6e10cfbb1f4af9e61ac7 is reasonable, I think. We call asdict (which works on data classes) on self and therefore we should specify that self is a dataclass.


Define objects as per LinkML schema

Basic idea:

Rewrite the modular generators to use LinkML schemas.
Include inheritance, e.g., an Address has slots for Full Name and Street Address, while Full Name has slots for Given Name and Family Name and others, etc.
Dynamically generate enums based on raw text input (i.e., make a transformer for list of strings -> enum)
Make a script that will generate new objects based on Link ML classes

The last item may work best if the schemas are converted into JSON Schema first and then combined with something like https://json-schema-faker.js.org/
LinkML won't do all the work here. Assembling objects into their representations will still involve reformatting, but some of that can be defined in the schema as well, e.g., for generating a Receipt there may be an enum of predefined format names like "fancy" or "allcaps" and then those are parsed by a formatter.
So this means three layers:

Schema
Data Generation
Formatting

And perhaps a layer 1.5: Data Loading, since some sources are local and others are remote.

This is how the project works now.


Add ShadowMask

Problem
A commonly asked question on the allegro.cc forums is how to add and light points in 2D. For example:

Solution
This PR adds ShadowMask, which is a simple class that uses blenders and bitmaps to implement this feature.

Fixes https://github.com/MarkOates/allegro_flare/issues/99

Python and css changes somehow snuck into this PR.


Support more alphabets

The Latin alphabet is not used worldwide. Windows and many other applications can also handle other characters.
It is best to orientate yourself on what Windows can do.

The primary goal behind this was to prevent any issues with windows file paths. We can make an update to allow more characters

0.2.0 has been updated to allow all characters outside of those restricted by Windows file and path naming conventions


Error decode UTF-8 character 'â'

I have a problem when I try using pyzbar to decode a QR image. But I had given result don't match data which I using qrcode make before.
this is my code:
from qreader import QReader
from PIL import Image
import qrcode
image_path = "my_image.png"
data = 'â'
print(f'data = {data}')
img = qrcode.make(data)
img.save(image_path)
img = cv2.imread(image_path)
result = qreader.detect_and_decode(image=img)
print(f"result = {result[0]}")

Hi, how are you initializing qreader here? qreader.detect_and_decode(image=img)
I have run your piece of code, just instantiating it as qreader = QReader() and gives me the correct result.
data = â
result = â

I have been exploring with the debugger and I have detected that, intermediately, pyzbar decodes an incorrect character with utf-8

However, when you instantiate QReader with its default reencode_to value, it automatically solves it:

I think that it should only fail to decode that character if you initialize it as QReader(reencode_to='utf-8') or QReader(reencode_to=None).
If that's not the case, could you give me more information to try to replicate the error?

Are you running latest version?
Which OS are you running?

Hi, @Eric-Canas I am  using

OS   Ubuntu 22.04.1 LTS.
qreader 3.11
python 3.10.12

This my resulf :

I have been trying to replicate the error in Windows, Amazon Linux and Ubuntu 22.04, and I have not been able to reproduce it :(
The error should be replicable by running:
>>> 'ﾃ｢'.encode('shift-jis').decode('utf-8')
'â'

Does this code also breaks for you?
(Amazon Linux 2023)

(Ubuntu)

My best guess is that It must be related with regional configuration of the OS, but I can not ensure that as I have not been able to replicate the error :(
The problem is related to how python encode and decode plain strings with special characters. As that's the line that is giving you the warning:
'ﾃ｢'.encode('shift-jis').decode('utf-8')

I have trying my code in the google colab and given result the same.
https://colab.research.google.com/drive/1IgW4G5hJugoC07-hT4nMn0fTte416n1l?usp=sharing

And I have checked result (b'\x8e\xa3' ) of pyzbar my program had different your result (b'\xc3\xa2')  :

Hi!
Sorry for the inconvenience, I oversimplified the error. I have been researching it thanks to your Google Colab, and I found that problem was that Windows and Linux does not use the same decoding. So, while default "utf-8" pyzbar decoding was 'ﾃ｢' for Windows, it was '璽' for Linux.
I did a large experimentation of shift-jis vs other encodings, and "Big5" is the one that gave me the correct decoding results for all characters on Linux systems, as shift-jis was for Windows systems (It gives same decoding that shift-jis for all cases where shift-jis works, and correct results for those cases where it fails on Linux).
I have uploaded an update that selects one or the other encoding as default, depending on your OS ("Big5" fails on a lot of characters on Windows :( ). I have tested it on your Google Colab, and that's producing expected results now.
You can upgrade it by pip install --upgrade qreader. Previous version should still work if you instantiate QReader as QReader(reencode_to="big5")
Thanks a lot for your warning!

Hi @Eric-Canas, I have checked your solution and one that gave correct  decoding results on my computer.
Thanks your supporting.

Hi @Eric-Canas ,
I have check QReader(reencode_to="big5") with character 'â' then gaven correct result. When i have checked  lagre data with  QReader(reencode_to="big5") then I have many same error.
there my code anh data :
import json
from qreader import QReader
from PIL import Image
import qrcode
import cv2
image_path = "my_image.png"
qreader = QReader(model_size='n',reencode_to='big5')
json_file = open('uit_member.json', 'r')
data = json.load(json_file)
j = 0
len_ = 0
for i in data:
len_ += 1
name = i["full_name"]
img = qrcode.make(name)
img.save(image_path)
img = cv2.imread(image_path)
result = qreader.detect_and_decode(image=img)
if name != result[0]:
j+= 1
print(f"{j*100/len_}%  data {name} result = {result[0]} ")

Hi!
Thanks for your test data. I'm still testing, it seems that there are some entries quite difficult to decode. By the moment I can tell you that most of your errors should dissapear this way:
QReader(reencode_to=('big5', 'shift-jis', 'latin1'))
But not all of them.
To easily replicate the error, there should be a way to decode
b'L\xef\xbe\x83\xef\xbd\xaa Anh S\xef\xbe\x86\xef\xbd\xa1n'
as
Lê Anh Sơn
But I can't find any charset that works. That's the direct byte detection pyzbar gets from the qr generated by qrcode for this entry. And I can't find any single nor double encoding way of decoding it correctly.
Sorry, I'll update you if a find an alternative.

Hi, i same issue.
Actually the phrase in my QR is:
Vinh Phong, Vinh Bao, Hai Phong
When using the library I get:
V藺nh Phong, V藺nh B廕υ, H廕ξ Ph簷ng

Hi, Did someone solve this problem or have any approach to handle this case ? Thank you!

Hello i have a same issue .
When i scan qrcode on my card id .
the correct text must be : HUỲNH HIẾU THUẬN
but the text I received was : Hu廙軟h Hi廕簑 Thu廕要
I have read your documentation and edited the reencode_to parameters but it doesn't seem to work for me.
My languages is vietnamese
And this is my code:
def read_qr_code_2(image_path):
    # Create a QReader instance
    qreader = QReader(model_size = 's', min_confidence = 0.5, reencode_to = 'utf-8')

    # Get the image that contains the QR code
    image = cv2.cvtColor(cv2.imread(image_path), cv2.COLOR_BGR2RGB)

    # Use the detect_and_decode function to get the decoded QR data
    decoded_text = qreader.detect_and_decode(image=image)
    print(decoded_text)

Update zbar version for binary output and change pyzbar code to use binary mode, I solved by this


.tool/lint: increase deadline

CI has been flaky for the too short deadline (https://github.com/opencontainers/image-spec/pull/650#issuecomment-296584432)
60s might be extremely long, but I think it does not hurt.
Signed-off-by: Akihiro Suda<EMAIL_ADDRESS>

LGTM

should be easy review. @opencontainers/image-spec-maintainers PTAL?

LGTM


Ping Graph 12-hour or 24-hour

Please create a switch to change timeformat to 12-hour or 24-hour. Currently it's both :frowning_face:

Got it. I'll switch to 24-hour only for now.

Great! Thanks @chakflying


Fix runtime error in the plugin. Bump version to 1.4.1

The was an error:
TypeError: Cannot read property 'name' of undefined

lgtm, maybe add a test?


History.md

This is still at version 0.5.3 and I'm looking at upgrading to 1.x but unsure what has changed.  Could this still be kept up to date?

Thanks for bringing this to my attention. I've updated History.md and will try to keep it up to date ;-)

Thanks much!


Let change or remove showContent animation in LCE views

Hi,
I think it is not possible right now to remove or change showContent animation in, for instance, MvpLceFragment (and subclasses).
I know a solution would be to override pertinent methods but I think it would be better if animation where decoupled from current implementation.
I think it wouldn't be hard to implement.

You can override animateContentViewIn()
https://github.com/sockeqwe/mosby/blob/master/mvp/src/main/java/com/hannesdorfmann/mosby/mvp/lce/MvpLceActivity.java#L112

That's right! I missed that :(
Thanks! And sorry for the obvious question


gothlander, accelerometers (logical-conflict)

This pull request was generated by the 'mq' tool

/trunk merge


balloon_show doesn't display the balloon

version: GVim 8.1.16 with (+balloon_eval)
balloon_show({expr})					*balloon_show()*
		Show {expr} inside the balloon.  For the GUI {expr} is used as
		a string.  For a terminal {expr} can be a list, which contains
		the lines of the balloon.  If {expr} is not a list it will be
		split with |balloon_split()|.

reproduce:

gvim -u NONE
:call balloon_show("my balloon")

I can't see my balloon.

Hm, it looks like BalloonEval is initially not set therefore skipping displaying the balloon.
Shouldn't we need something like this?
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 2793803b7..a1e243a9e 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1481,6 +1481,8 @@ f_atan2(typval_T *argvars, typval_T *rettv)
     static void
 f_balloon_show(typval_T *argvars, typval_T *rettv UNUSED)
 {
+    if (balloonEval == NULL)
+       balloonEval = (BalloonEval *)alloc(sizeof(BalloonEval));
     if (balloonEval != NULL)
     {
        if (argvars[0].v_type == VAR_LIST

I have applied your patch, and find another problem:
sometimes balloon_show works, sometimes not. and I traced into gui_mch_post_balloon:
    void
gui_mch_post_balloon(BalloonEval *beval, char_u *mesg)
{
    POINT   pt;

    // TRACE0("gui_mch_post_balloon {{{");
    logout("[gui_mch_post_balloon] step1 %d/%d", (int)beval->showState, (int)ShS_SHOWING);
    if (beval->showState == ShS_SHOWING)
	return;
    GetCursorPos(&pt);
    ScreenToClient(s_textArea, &pt);

    if (abs(beval->x - pt.x) < 3 && abs(beval->y - pt.y) < 3)
    {
	/* cursor is still here */
	gui_mch_disable_beval_area(cur_beval);
	beval->showState = ShS_SHOWING;
	make_tooltip(beval, (char *)mesg, pt);
    }
    // TRACE0("gui_mch_post_balloon }}}");
}

after calling balloon_show several times, beval->showState will change to ShS_SHOWING and this function returns immediately because it thinks the balloon is showing, but actully not. and balloon_show doesn't work any more.

From my very brief testing I haven't noticed that. So how can this be reproduced? Since the above code is from gui_w32.c perhaps this only happens on windows?

reproduce: repeatly execute :call balloon_show("my balloon") three or more times. I have no idea if it is a win32 problem, I can check it latter on linux.

Yes, in the terminal, we have this code:
https://github.com/vim/vim/blob/833093bfb0e4a7f89b5adc66babcfa8ac09cfda9/src/beval.c#L140-L147
and then ui_post_balloon:
https://github.com/vim/vim/blob/833093bfb0e4a7f89b5adc66babcfa8ac09cfda9/src/popupmnu.c#L1035-L1038
So it will always first remove it.
The GTK Version does this using the key_event callback when waiting for input
https://github.com/vim/vim/blob/833093bfb0e4a7f89b5adc66babcfa8ac09cfda9/src/gui_beval.c#L478
called from gui_mch_wait_for_chars()
https://github.com/vim/vim/blob/833093bfb0e4a7f89b5adc66babcfa8ac09cfda9/src/gui_gtk_x11.c#L6702-L6708
I suppose we need something similar in gui_mch_wait_for_chars() in gui_w32.c
https://github.com/vim/vim/blob/833093bfb0e4a7f89b5adc66babcfa8ac09cfda9/src/gui_w32.c#L2116
I don't know what the function needs to be called, delete_tooltip(cur_beval) if it is non null?

I don't have a gtk environment, nor mac vim.  I tested on linux terminal, and couldn't see any balloon messages either after balloon_eval .

Maybe related? #1512

Not works in my terminal vim 8.1.50 (compiled with brew)
even after set balloon_eval_term and balloon_eval

Also not works with my macvim version: 8.1 1-39, latest installed via brew.
The macvim is complied with balloon_eval and balloon_eval_term and I have set
  set balloonevalterm
  set ballooneval

It may be unrelated, but I have not been able to have balloons show using any of the proposed tests/workarounds when using putty (latest snapshopt: https://www.chiark.greenend.org.uk/~sgtatham/putty/snapshot.html) on Linux (OEL 6.9) with the latest builds of vim. I can get other 'popups' to appear, i.e completion menus and right click termdebug menus.
The balloons show fine using WSL via bash.exe on windows and the same version of vim.
Can anyone confirm if they have balloons working through putty?

I wonder if patch 8.1.1300 fixed this.

There are too many different situations in this issue.  Let's close this, and if you still see a problem, please open a new issue, mentioning the context and an example of how to reproduce.


Update faq.md with more Questions

I made the requested changes and added the Flow FAQ questions to the end. I tried to simplify the "How do I Upgrade the FDK" question and not sure if I helped or just mucked it up.

I'm hoping to start on this today. Still clearing the deck from previous projects.

Ok, I made almost all of the requested changes and committed them to the branch. (Hope that was the right way to do it.) Let me know if you have any more questions or comments.

Instead of "Our vision at Iron.io was a lot larger than a simple FaaS platform." I would say "The Fn Project is an evolution of the IronFunctions project from Iron.io and our original vision for IronFunctions was a lot larger than a simple FaaS platform."

Made the change Shaun requested. I think we are ready to merge.

Ok. Addressed almost all of Denis' comments. Sorry I didn't get to this sooner. Death by meetings for me this week.

Made the additional requested fixes.

Oracle CLA Bot
Thank you for your submission, we really appreciate it. Like many open source projects,
we ask that you sign our [Contributor License Agreement](http://www.oracle.com/technetwork/community/oca-486395.html) before we can accept your contribution.

@michael-w-williams

Oracle CLA Bot
Thank you for your submission, we really appreciate it. Like many open source projects,
we ask that you sign our [Contributor License Agreement](http://www.oracle.com/technetwork/community/oca-486395.html) before we can accept your contribution.

@michael-w-williams

CLA BotThank you for your submission!
It appears that the following authors have not signed our Contributor License Agreement:

Please do so now by following this link. We are working on modernizing the CLA process into a digital signature but it isn’t quite ready yet.
Once complete, let us know in our community Slack  and we’ll send you an Fn T-shirt.
Thank you for being a part of the Fn Community!

CLA Bot
Thank you for your submission!
It appears that the following authors have not signed our Contributor License Agreement:

Please do so now by following this link. We are working on modernizing the CLA process into a digital signature but it isn’t quite ready yet.
Once complete, let us know in our community Slack  and we’ll send you an Fn T-shirt.
Thank you for being a part of the Fn Community!

Is this PR just blocked by CLA?  @michael-w-williams looks like you should be covered now that your membership in oracle org is public?

Can one of you guys merge it?  It still appears that I can't do that. Is there anything else that needs to be done?

@michael-w-williams You should be good. Seems like its waiting on a ✔  from @treeder


Raise a warning when depynd.bayesian_networks is loaded

The method depynd.bayesian_networks.mmhc() is implemented using mutual information scoring function, which has no theoretical guarantee to work on discrete-continuous mixtures.

Bayesian network has been removed


which way I can turn on filters for D435if on ROS？

I want to open or close the filters for camera, but it shows error like:
roslaunch realsense2_camera rs_camera.launch filters:decimation, temporal
Usage: roslaunch [options] [package]  [arg_name:=value...]
roslaunch [options]  [...] [arg_name:=value...]
If  is a single dash ('-'), launch XML is read from standard input.
roslaunch: error: The following input files do not exist: filters:decimation,, temporal
which way to solve this pro?

Hi @monson-li  It looks as though you are missing an = sign from your filters instruction.
roslaunch realsense2_camera rs_camera.launch filters:=decimation, temporal
After launch has completed, you can set the strength of the Decimation filter (its magnitude) during runtime with a dynamic reconfigure command.  For example, to set the magnitude to '2' (downsampling the current resolution by a factor of 2):
rosrun dynamic_reconfigure dynparam set camera/decimation 'Filter Magnitude' 2
You can also define the settings of a filter by adding code to the launch file, as described at https://github.com/IntelRealSense/realsense-ros/issues/742#issuecomment-516918718

Hi @monson-li  Do you require further assistance with this case, please?  Thanks!


if folders are created the script fails

hi when i run the script in a folder that currently has the size folders the script fails i changed the scirpt to fix
function makeDirectories() {
console.log("Making directories...");
var startIndex = sizeNames.indexOf(currentImageSize);
var endIndex = sizeNames.indexOf(smallestImageSize);
for (var i = startIndex; i <= endIndex; i++) {
if (!fs.existsSync(sizeNames[i])){
fs.mkdirSync(sizeNames[i]);
}
}
populateImageFiles();
}

Please push these changes.


001 how to setup simple kubernetes cluster in gce

Initialize 001 Blog and resources How to Setup Simple Kubernetes Cluster in GCE

Initialize 000 main infrastructure folder
Initialize terraform modules folder
Initialize 001 Blog and resources How to Setup Simple Kubernetes Cluster in GCE

Notes:

Weavework is bangkrut and their website is inaccessible. Should we consider using another CNI (Cilium perhaps?).
The infrastructure link in the md file needs to be updated.
Add more illustrations (perhaps?)


Add a "redirect" command type

It would be nice to have a redirect command type which, when executed, simply executes another command. It would be possible to prefill certain arguments and to lazy-load the redirected command.
This could be especially useful in cases where developers would like to have a command group (for example, docs) redirect to another command (for example, docs info). This would allow users using text commands to simply run the shortened docs command while slash command users still have access to the command, at the same level as other commands in the docs group.

Closing as this feature isn't worth adding unnecessary code to the package. Users wanting to achieve the same effect can simply use the same function for both commands, or use a wrapper callback if they want to prefill certain parameters.

Closing as this feature isn't worth adding unnecessary code to the package. Users wanting to achieve the same effect can simply use the same function for both commands, or use a wrapper callback if they want to prefill certain parameters.


pkg/fileutil: add plan9 lockfile support

having a lockfile implementation allows etcdctl to build and run on plan9. this code passes the lockfile tests. unfortunately the purge tests do not work, and i haven't been able to build etcd yet, but having a Lock implementation is required.

I think this should work... But have you tried it on plan9? If yes, then LGTM

@xiang90 it seems i was wrong and the purge tests do pass.
i noticed if i increase the lock polling period to > 10ms, then TestLockAndUnlock fails because of https://github.com/coreos/etcd/blob/master/pkg/fileutil/lock_test.go#L93.
if problems appear due to the lock file i can fix it at a later time, but it seems that the only caller is in the WAL code.
cpu% pwd
/usr/mischief/etcd-2.1.0-alpha.0/pkg/fileutil
cpu% go test -v
=== RUN TestIsDirWriteable
--- PASS: TestIsDirWriteable (0.00s)
=== RUN TestReadDir
--- PASS: TestReadDir (0.00s)
=== RUN TestLockAndUnlock
--- PASS: TestLockAndUnlock (0.02s)
=== RUN TestPurgeFile
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/0.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/1.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/2.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/3.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/4.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/5.test
2015/05/11 13:48:48 filePurge: successfully removed file /tmp/purgefile877965143/6.test
--- PASS: TestPurgeFile (0.13s)
=== RUN TestPurgeFileHoldingLock
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/0.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/1.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/2.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/3.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/4.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/5.test
2015/05/11 13:48:49 filePurge: successfully removed file /tmp/purgefile630355146/6.test
--- PASS: TestPurgeFileHoldingLock (0.13s)
PASS
ok  	_/usr/mischief/etcd-2.1.0-alpha.0/pkg/fileutil	0.575s
cpu%

LGTM


release is set to "stretch" by default

"release is set to "stretch" by default" is mentioned in the changelog but as far as i can see, jessie is no longer supported. So this should probably be mentioned explicitly in the changelog.

I hope we didn't break anything with stretch. Jessie and wheezy should still work...

I saw some commits that should have broken it, let me find some.

You're right. I don't think, building is still possible with jessie. But I see no reason why we need this.
The installer itself can install all three releases! It tried this one week ago without any problems.

Ok I fully agree @FooDeas, but let's make a note of that (in a positive way ;)) in the release notes/changelog

But that's wrong. If you want to use an older version of raspbian. Just set the release version in the installer-config.
The build.sh content can and should be left as it is.

Fair enough.

I thought about it again.
The problem is: The build environment has to be always up to date with the highest release that is intended to be installed.
When I see the package dependency changes with the update to stretch and the workload, I come to the decision that the whole build process has to be rewritten. This will resolve many similar problems permanently.
Before then, the release version in the build process can't be changed - unfortunately this has always been the case.


Chart collapsed when set height of chart around 120px.

One-line summary [问题简述]
Chart collapsed when set height of chart around 120px.
Version & Environment [版本及环境]

ECharts version [ECharts 版本]: 4.2.0-rc.1
Browser version [浏览器类型和版本]: Google Chrome Version 69.0.3497.92
OS Version [操作系统类型和版本]: Linux version 4.18.7-1-default

Expected behaviour [期望结果]
The same as in tutorials.
ECharts option [ECharts配置项]

option = {
        title: {
          text: 'ECharts entry example'
        },
        tooltip: {},
        legend: {
          data:['Sales']
        },
        xAxis: {
          data: ["shirt","cardign","chiffon shirt","pants","heels","socks"]
        },
        yAxis: {},
        series: [{
          name: 'Sales',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]
      }

Other comments [其他信息]

Using the same option as in tutorial, except for the size:

The result is like below:

You can use top/right/bottom/left properties to layout each componet. But I don't suggest you still display so many components in such a small area.

You can use top/right/bottom/left properties to layout each componet. But I don't suggest you displaying so many components in such a small area.

I can remove other components, only remain chart content, but it's the same issue:
option = {
        xAxis: {
          data: ["shirt","cardign","chiffon shirt","pants","heels","socks"]
        },
        yAxis: {},
        series: [{
          name: 'Sales',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]
      }

The result like below:

Once you change the height smaller, it should be much better:

You can use top/right/bottom/left properties to layout each componet. But I don't suggest you displaying so many components in such a small area.

I can remove other components, only remain chart content, but it's the same issue:
option = {
        xAxis: {
          data: ["shirt","cardign","chiffon shirt","pants","heels","socks"]
        },
        yAxis: {},
        series: [{
          name: 'Sales',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]
      }

The result like below:

Once you change the height smaller, it should be much better:

set the option.grid.top and option.grid.bottom at suitable value , the result will be normal

You can use top/right/bottom/left properties to layout each componet. But I don't suggest you displaying so many components in such a small area.

I can remove other components, only remain chart content, but it's the same issue:
option = {
        xAxis: {
          data: ["shirt","cardign","chiffon shirt","pants","heels","socks"]
        },
        yAxis: {},
        series: [{
          name: 'Sales',
          type: 'bar',
          data: [5, 20, 36, 10, 10, 20]
        }]
      }

The result like below:

Once you change the height smaller, it should be much better:

set the option.grid.top and option.grid.bottom at suitable value , the result will be normal

Got it. Thanks.


UIDMapper cache refreshers to bust the server cache

when we load teams for display, we tell the UIDmapper of the high eldest we know for a user (ignoring =0 resets)
if that value is less than what's cached, we bust the cache, and tell the server to bust its cache
a test to confirm this worked; i confirmed the test worked by breaking it on the client and server side and making sure the test failed
all of this is very complicated; we could, instead, only apply the Alive check against the UIDMapper value when the UIDMapper's eldest is greater than the team's. I think that would achieve roughly the same effect with like 200 less LoC. However, let's give this a try
note we're still not getting the eldest_seqno=0 case perfect anyways. it's because if the team say eldest=0 and the UIDmapper disagrees, or vice versa, we don't know who is right. the right thing to do, long run, is to have eldest_seqno given by a <Seqno,bool> pair, meaning <latestEldest,isAlive>. That would resolve any amibuguities. but it's a huge change

I've been testing it this morning and looks like it's working! The only big thing missing in "team reset experience" is now CORE-6646 (send after reset gregors to all members). There also seems to be a bug in UI where you can't re-add someone who's reset because UI thinks they are already in the team, but I need to confirm it and file a ticket.
There is still an issue where you can race the server's cache after getting member_out_from_reset gregor and loading the team immediately after. If we special-cased eldest=0 in InformOfEldestSeqno, maybe instead of clearing UIDMapper cache for uid in teamHandler.memberOutFromReset we could do InformOfEldestSeqno(<uid, 0>). But then there's the self-dos case where team of 1000 people gets these gregors and everyone proceeds to call uidmapper endpoint with <uid, 0> refresher - then if the person has already reprovisioned, server will reload that person 1000 times to make sure it's not eldest=0.

Cool thanks. I have a solution to that problem but it’s a fair amount of work.  I will write up tickets.  Code name: ESLIB (eldest seqno with low inactive bit).  Basically we should be using (2*eldest_seqno’ + isreset) where we currently use eldest Seqno.  Eldest_seqno’ is the eldest seqno that monotonically increases and never resets to 0. This disambiguates the current issues we have now with =0, which is devoid of order information.

See follow-ons in CORE-6906 and CORE-6907.


feat(RingTheory/Ideal/Quotient): assume Semiring instance instead of CommRing

Ideal.Quotient.lift only needs Semiring S on the target to work.
This PR only changes one line : variable [CommRing S] to variable [Semiring S]

bors merge
Thanks!


how to generate stix2 data for taxii2 server

Hello,
i am trying to generate stix2 data using the below link
https://oasis-open.github.io/cti-documentation/examples/identifying-a-threat-actor-profile
then upload the same stix2 data into taxii2 server.
Now when i am trying to fetch the data from taxii2 client, it did not get any data although the data is already saved in server side.
this is method i am using for fetch data from server side
from taxii2client import Collection
collection = Collection('https://example.com/api1/collections/91a7b528-80eb-42ed-a74d-c6fbd5a26116')
collection.get_object('indicator--252c7c11-daf2-42bd-843b-be65edca9f61')
(from this link: https://github.com/oasis-open/cti-taxii-client)
Below data is default data provided by taxii2 server
{
"/discovery": {
"title": "Some TAXII Server",
"description": "This TAXII Server contains a listing of...",
"contact": "string containing contact information",
"default": "http://<IP_ADDRESS>:5000/api2/",
"api_roots": [
"http://<IP_ADDRESS>:5000/api1/",
"http://<IP_ADDRESS>:5000/api2/",
"http://<IP_ADDRESS>:5000/trustgroup1/"
]
},
"api1": {
"information": {
"title": "General STIX 2.0 Collections",
"description": "A repo for general STIX data.",
"versions": [
"taxii-2.0"
],
"max_content_length": 9765625
},
"status": {
    },
    "collections": [
    ]
},
"api2": {
    "information": {
        "title": "STIX 2.0 Indicator Collections",
        "description": "A repo for general STIX data.",
        "versions": [
            "taxii-2.0"
        ],
        "max_content_length": 9765625
    },
    "status": [
    ],
    "collections": [
    ]
},
"trustgroup1": {
    "information": {
        "title": "Malware Research Group",
        "description": "A trust group setup for malware researchers",
        "versions": [
            "taxii-2.0"
        ],
        "max_content_length": 9765625
    },
    "status": [
        {
            "id": "2d086da7-4bdc-4f91-900e-d77486753710",
            "status": "pending",
            "request_timestamp": "2016-11-02T12:34:34.12345Z",
            "total_count": 4,
            "success_count": 1,
            "successes": [
                "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade"
            ],
            "failure_count": 1,
            "failures": [
                {
                    "id": "malware--664fa29d-bf65-4f28-a667-bdb76f29ec98",
                    "message": "Unable to process object"
                }
            ],
            "pending_count": 2,
            "pendings": [
                "indicator--252c7c11-daf2-42bd-843b-be65edca9f61",
                "relationship--045585ad-a22f-4333-af33-bfd503a683b5"
            ]
        },
        {
            "id": "2d086da7-4bdc-4f91-900e-f4566be4b780",
			"status": "pending",
			"request_timestamp": "2016-11-02T12:34:34.12345Z",
            "total_objects": 2,
			"success_count": 0,
			"successes": [
            ],
			"failure_count": 0,
			"failures": [
            ],
			"pending_count": 0,
			"pendings": [
            ]
        }
    ],
    "collections": [
        {
            "id": "91a7b528-80eb-42ed-a74d-c6fbd5a26116",
            "title": "High Value Indicator Collection",
            "description": "This data collection is for collecting high value IOCs",
            "can_read": true,
            "can_write": true,
            "media_types": [
                "application/vnd.oasis.stix+json; version=2.0"
            ],
            "objects": [
                {
                    "created": "2017-01-27T13:49:53.997Z",
                    "description": "Poison Ivy",
                    "id": "malware--fdd60b30-b67c-11e3-b0b9-f01faf20d111",
                    "labels": [
                        "remote-access-trojan"
                    ],
                    "modified": "2017-01-27T13:49:53.997Z",
                    "name": "Poison Ivy",
                    "type": "malware"
                },
                {
                    "created": "2014-05-08T09:00:00.000Z",
                    "id": "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade",
                    "labels": [
                        "file-hash-watchlist"
                    ],
                    "modified": "2014-05-08T09:00:00.000Z",
                    "name": "File hash for Poison Ivy variant",
                    "pattern": "[file:hashes.'SHA-256' = 'ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c']",
                    "type": "indicator",
                    "valid_from": "2014-05-08T09:00:00.000000Z"
                },
                {
                    "created": "2014-05-08T09:00:00.000Z",
                    "id": "relationship--2f9a9aa9-108a-4333-83e2-4fb25add0463",
                    "modified": "2014-05-08T09:00:00.000Z",
                    "relationship_type": "indicates",
                    "source_ref": "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade",
                    "target_ref": "malware--fdd60b30-b67c-11e3-b0b9-f01faf20d111",
                    "type": "relationship"
                }
            ],
            "manifest": [
                {
                    "id": "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade",
                    "date_added": "2016-11-01T03:04:05Z",
                    "versions": [
                        "2014-05-08T09:00:00.000Z"
                    ],
                    "media_types": [
                        "application/vnd.oasis.stix+json; version=2.0"
                    ]
                },
                {
                    "id": "malware--fdd60b30-b67c-11e3-b0b9-f01faf20d111",
                    "date_added": "2017-01-27T13:49:53.997Z",
                    "versions": [
                        "2017-01-27T13:49:53.997Z"
                    ],
                    "media_types": [
                        "application/vnd.oasis.stix+json; version=2.0"
                    ]
                }
            ]
        },
        {
            "id": "52892447-4d7e-4f70-b94d-d7f22742ff63",
            "title": "Indicators from the past 24-hours",
            "description": "This data collection is for collecting current IOCs",
            "can_read": true,
            "can_write": false,
            "media_types": [
                "application/vnd.oasis.stix+json; version=2.0"
            ],
            "objects": [
                {
                    "created": "2016-11-03T12:30:59.000Z",
                    "id": "indicator--d81f86b9-975b-bc0b-775e-810c5ad45a4f",
                    "labels": [
                        "url-watchlist"
                    ],
                    "modified": "2017-01-27T13:49:53.935Z",
                    "name": "Malicious site hosting downloader",
                    "pattern": "[url:value = 'http://x4z9arb.cn/4712']",
                    "type": "indicator",
                    "valid_from": "2016-11-03T12:30:59.000Z"
                },
				{
                    "created": "2016-11-03T12:30:59.000Z",
                    "description": "Accessing this url will infect your machine with malware.",
					"id": "indicator--d81f86b9-975b-bc0b-775e-810c5ad45a4f",
                    "labels": [
                        "url-watchlist"
                    ],
                    "modified": "2016-11-03T12:30:59.000Z",
                    "name": "Malicious site hosting downloader",
                    "pattern": "[url:value = 'http://x4z9arb.cn/4712']",
                    "type": "indicator",
                    "valid_from": "2017-01-27T13:49:53.935382Z"
                }
            ],
            "manifest": [
                {
                    "id": "indicator--d81f86b9-975b-bc0b-775e-810c5ad45a4f",
                    "date_added": "2016-12-27T13:49:53Z",
                    "versions": [
                        "2016-11-03T12:30:59.000Z",
                        "2017-01-27T13:49:53.935Z"
                    ],
                    "media_types": [
                        "application/vnd.oasis.stix+json; version=2.0"
                    ]
                }
            ]
        },
        {
            "id": "64993447-4d7e-4f70-b94d-d7f33742ee63",
            "title": "Secret Indicators",
            "description": "Non accessilble",
            "can_read":false,
            "can_write": false,
            "media_types": [
                "application/vnd.oasis.stix+json; version=2.0"
            ],
            "objects": [
                {
                    "created": "2016-11-03T12:30:59.000Z",
                    "description": "Accessing this url will infect your machine with malware.",
                    "id": "indicator--b81f86b9-975b-bb0b-775e-810c5bd45b4f",
                    "labels": [
                        "url-watchlist"
                    ],
                    "modified": "2016-11-03T12:30:59.000Z",
                    "name": "Malicious site hosting downloader",
                    "pattern": "[url:value = 'http://z4z10farb.cn/4712']",
                    "type": "indicator",
                    "valid_from": "2017-01-27T13:49:53.935382Z"
                }
            ],
            "manifest": [
                {
                    "id": "indicator--b81f86b9-975b-bb0b-775e-810c5bd45b4f",
                    "date_added": "2016-12-27T13:49:53Z",
                    "versions": [
                        "2016-11-03T12:30:59.000Z",
                        "2017-01-27T13:49:53.935Z"
                    ],
                    "media_types": [
                        "application/vnd.oasis.stix+json; version=2.0"
                    ]
                }
            ]
        }
    ]
}

}
now i am adding the new data generated by stix2
{
"spec_version": "2.0",
"objects": [
{
"name": "Poison Ivy",
"created": "2017-01-27T13:49:53.997Z",
"labels": [
"remote-access-trojan"
],
"modified": "2017-01-27T13:49:53.997Z",
"type": "malware",
"id": "malware--fdd60b30-b67c-11e3-b0b9-f01faf20d111",
"description": "Poison Ivy"
},
{
"valid_from": "2014-05-08T09:00:00.000000Z",
"name": "File hash for Poison Ivy variant",
"created": "2014-05-08T09:00:00.000Z",
"pattern": "[file:hashes.'SHA-256' = 'ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c']",
"labels": [
"file-hash-watchlist"
],
"modified": "2014-05-08T09:00:00.000Z",
"type": "indicator",
"id": "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade"
},
{
"created": "2014-05-08T09:00:00.000Z",
"modified": "2014-05-08T09:00:00.000Z",
"target_ref": "malware--fdd60b30-b67c-11e3-b0b9-f01faf20d111",
"relationship_type": "indicates",
"type": "relationship",
"id": "relationship--2f9a9aa9-108a-4333-83e2-4fb25add0463",
"source_ref": "indicator--a932fcc6-e032-176c-126f-cb970a5a1ade"
},
{
"name": "Teddy Bear",
"created": "2019-06-24T04:38:11.014Z",
"labels": [
"nation-state"
],
"resource_level": "government",
"modified": "2019-06-24T04:38:11.014Z",
"goals": [
"compromising environment NGOs",
"water-hole attacks geared towards energy sector"
],
"sophistication": "innovator",
"type": "threat-actor",
"id": "threat-actor--d881bb22-bb8f-4a58-9c44-d26db3592979"
},
{
"valid_from": "2019-06-24T04:38:11.015525Z",
"name": "File hash for malware variant",
"created": "2019-06-24T04:38:11.015Z",
"pattern": "[file:hashes.md5 = 'd41d8cd98f00b204e9800998ecf8427e']",
"labels": [
"malicious-activity"
],
"modified": "2019-06-24T04:38:11.015Z",
"type": "indicator",
"id": "indicator--2ca58eaf-fa1d-4341-bf56-8173ade40ba1"
},
{
"name": "Teddy Bear",
"created": "2019-06-24T04:38:36.140Z",
"labels": [
"nation-state"
],
"resource_level": "government",
"modified": "2019-06-24T04:38:36.140Z",
"goals": [
"compromising environment NGOs",
"water-hole attacks geared towards energy sector"
],
"sophistication": "innovator",
"type": "threat-actor",
"id": "threat-actor--a55ef562-6fec-4bb5-88ec-310ab560f512"
},
{
"valid_from": "2019-06-24T04:38:36.141268Z",
"name": "File hash for malware variant",
"created": "2019-06-24T04:38:36.141Z",
"pattern": "[file:hashes.md5 = 'd41d8cd98f00b204e9800998ecf8427e']",
"labels": [
"malicious-activity"
],
"modified": "2019-06-24T04:38:36.141Z",
"type": "indicator",
"id": "indicator--ac2b637f-57d9-44eb-931d-dac666cc320b"
},
{
"name": "Teddy Bear",
"created": "2019-06-24T04:43:24.774Z",
"labels": [
"nation-state"
],
"resource_level": "government",
"modified": "2019-06-24T04:43:24.774Z",
"goals": [
"compromising environment NGOs",
"water-hole attacks geared towards energy sector"
],
"sophistication": "innovator",
"type": "threat-actor",
"id": "threat-actor--6b6c2c5b-a77d-4c5c-8251-0d5dfb5dd1f2"
},
{
"valid_from": "2019-06-24T04:43:24.775746Z",
"name": "File hash for malware variant",
"created": "2019-06-24T04:43:24.775Z",
"pattern": "[file:hashes.md5 = 'd41d8cd98f00b204e9800998ecf8427e']",
"labels": [
"malicious-activity"
],
"modified": "2019-06-24T04:43:24.775Z",
"type": "indicator",
"id": "indicator--61c71841-c01a-493f-bf23-a36a5dcb0675"
},
{
"name": "Teddy Bear",
"created": "2019-06-24T04:43:32.713Z",
"labels": [
"nation-state"
],
"resource_level": "government",
"modified": "2019-06-24T04:43:32.713Z",
"goals": [
"compromising environment NGOs",
"water-hole attacks geared towards energy sector"
],
"sophistication": "innovator",
"type": "threat-actor",
"id": "threat-actor--c7477a20-4f53-46a0-87dd-53bf7f221fc9"
},
{
"valid_from": "2019-06-24T04:43:32.713978Z",
"name": "File hash for malware variant",
"created": "2019-06-24T04:43:32.713Z",
"pattern": "[file:hashes.md5 = 'd41d8cd98f00b204e9800998ecf8427e']",
"labels": [
"malicious-activity"
],
"modified": "2019-06-24T04:43:32.713Z",
"type": "indicator",
"id": "indicator--9d29e11f-b86c-4d9d-b83a-98bdea0ab0f7"
}
],
"type": "bundle",
"id": "e6073e5d-1473-4271-b27c-8c033cf8708f"
}
when i add this data and try to fetch by id :e6073e5d-1473-4271-b27c-8c033cf8708f it does not give any data
please let me knoe if i have made any mistake.

Hi @dipenpatel235, Bundles are not permanent and aren't stored in the TAXII server, just the objects inside it. So you can fetch any of the objects from that bundle, but not the bundle itself. If you just want to get all the objects on the server, you can use collection.get_objects().
Also, e6073e5d-1473-4271-b27c-8c033cf8708f is an invalid id in stix. It should include the type, like: bundle--e6073e5d-1473-4271-b27c-8c033cf8708f. How was this content generated?

Thank you @clenk, I have succesfully fetch object.


udpate readme

new announcement

Coverage decreased (-0.9%) to 57.967% when pulling ea8bd7644b50291ee872413cba7f45c7a2377f4c on fanyangCS-patch-1 into 6c9a17da105f4663616cd97072ae6bf8ff04e721 on master.

Coverage decreased (-0.9%) to 57.967% when pulling ea8bd7644b50291ee872413cba7f45c7a2377f4c on fanyangCS-patch-1 into 6c9a17da105f4663616cd97072ae6bf8ff04e721 on master.

Coverage decreased (-0.9%) to 57.967% when pulling ea8bd7644b50291ee872413cba7f45c7a2377f4c on fanyangCS-patch-1 into 6c9a17da105f4663616cd97072ae6bf8ff04e721 on master.


how to generate the "cp.npy"

control point  is set manually, so I didn't put all data here.
Now I have updated the codes and the relevant data.
It works now.

where can I find the Train_data

Thank you for your source code.
I have a question.
I want change the control point. Is it possible.
and I want re training. But there is no body_control_points.txt, cp.py and TrainingData folder.
Can I get the file?
Thank you for your effort.

Hi @boram0603 ,
We use the training dataset of SPRING, and the body_control_points.txt is generated by manually according to a anthropometric measurement guidance.  We are planing to release relevant data these days.
Thanks,
Yanhong.


Upcoming & ongoing on the dashboard

This fixes #495.
The fix was pretty easy thanks to the QuerySet logic.

@gvwilson awaiting feedback on this PR and #496 (but I need to rebase it first) and #494 and #493.

@gvwilson fixed.

+1 to merge.


SD stored pictures get by browser

Hi Dears;
I would like stored sd card jpg files get by browser. capture triger with GPIO similar digital camera. one push button capture image1.jpg second push capture image2.jpg .
after stored SD card i would like access with browser, get files by link
for example : http://ipaddress/jpeg/image1.jpg enter browser and ge file from sd card.
how can I do it_?
thanks. Best Regards

That is an interesting project idea.
I believe that an example that takes a photo after pressing a button would help.
You can change the sd example project to trigger a new capture using the GPIO button.

hi

That is an interesting project idea.
I believe that an example that takes a photo after pressing a button would help.
You can change the sd example project to trigger a new capture using the GPIO button.

hi Raphaelbs;
I get image from sd car by web browser. but get onle small part of image. code at bellow. what is problem?
`
File f = SD_MMC.open("/capture.jpg", "r");
int filesize = f.size();
String WebString = "";
WebString += "HTTP/1.1 200 OK\r\n";
WebString += "Content-Type: image/jpeg\r\n";
WebString += "Content-Length: " + String(filesize) + "\r\n";
WebString += "\r\n";
char buf[1024];
int siz = f.size();
while(siz > 0) {
size_t len = std::min((int)(sizeof(buf) - 1), siz);
f.read((uint8_t )buf, len);
httpd_resp_set_type(req, "image/jpeg");
httpd_resp_send(req,(const char)buf,len);
siz -= len;
f.close();
}
`


specify upload page (index)

Purpose: Users select the data table and data dictionary files that will be used for annotating
Actions / User flows:

Select data table (participants.tsv)
Select data table and cancel selection
Select data dictionary (participants.json)
Select data dictionary and cancel selection

Required input:

Empty data table from store
Empty data dictionary from store
Page data from store

Generated output:

Data table (saved in store)
Data dictionary (saved in store)

Internal state:
N/A

Closed by https://github.com/neurobagel/annotation_tool/pull/233


Upgrade deadlines in open edX keep reverting

Steps to Reproduce

Yesterday, I set the upgrade deadline on https://courses.mitxonline.mit.edu/admin/course_modes/coursemode/9/change/ to 2022-10-07.
Today it is set to 2022-12-04 (a setting that it mistakenly had some time ago)

Expected Behavior

After setting a date for a course mode in open edX, it shouldn't change without an admin user changing it.
I am expecting mitxonline upgrade deadlines to sync periodically with the setting in open edX

Actual Behavior

The date keeps reverting on this record (some others too, but most recently this one)
The ugprade deadline in mitxonline doesn't seem to be updating

@collinpreston this is a very strange bug, but I've confirmed over and over that it is happening.
Can you review the sync settings for upgrade deadlines and let me know if it's possible that this is a bug with the sync code?

@pdpinch, yes I'll check this out now.

It happened again since yesterday!
On https://courses.mitxonline.mit.edu/admin/course_modes/coursemode/9/change/ the upgrade deadline is 12/4/2022.
This is so bizarre & crazy-making

I haven't seen this happen again since Friday.
Can you leave some notes here about what you found regarding course publish?

@pdpinch, I'm at a dead-end with each theory I had for how this might be occurring.

@collinpreston can this be closed?

We can finally close this!


Timer::render() is not working with absolute paths on windows

I would like to render a template with an absolute path on my windows machine (working with Local).
$path = "C:\Users\jonas\Local Sites\mywebsite\app\public/wp-content/themes/my-theme/components/example/index.twig";

$context = Timber::context();
Timber::render($template, $context);

On Mac it's working fine! If I'm using a relative path like "/components/example/index.twig" it's working fine as well.
Expected behavior
The template should be rendered.
Actual behavior
The Timber::render function returns false, because the Twig\FilesystemLoader->exists() function return false. The functions is called in the Timber\Loader class. So the template isn't rendered.
What version of WordPress, PHP and Timber are you using?
WordPress: 6
PHP: 7.4.1
Working with nginx in Local.
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Via Composer.

Thank you @iamjonasmarlo! I have to confess that I don't personally use Windows for development. It's likely an issue with the \ vs / directory syntax. Are you able to investigate and propose a PR?

@iamjonasmarlo I think the Space in the path leads to troubles.
Could you try to rename your dir to something like "Local_Sites" and try again?

Not sure why you would want to go for an absolute path like that. There are more elegant ways to traverse that are independent of the platform you are using.


Do I need dependencies on destination Windows PC?

If I compile for Windows my Golang project can I use the executable on another machine without wkhtmltopdf/wkhtmltox dependencies installed on that machine?

Hi @frederikhors. No, you don't have to install wkhtmltox if you want to run your executable on other machines. However, you will need to ship your application with wkhtmltox.dll. As long as your executable and the DLL file are in the same directory, you should be able to run your application.


Update coal to make it work, and all tests pass

Update all  gems for using ruby 3.
All specs passes


Allow to install specific version of fluent plugins

Underlying gem package provider allows to install specific version. It would be nice if fluentd::plugin haven't block that option.

thanks for the PR!
Definitely a reasonable change. Need to check why its breaking the build, but currently we have other projects to focus on, so it might take up to a couple of days till it is getting merged.
Feel free to investigate yourself, if you want to get this change to go life ASAP.

@Moozaliny it turns out it was a problem with Puppet 4. I've added fix for that to separate commit and tests are now passing!

Thanks for pushing new version!


Use opam update, remove --verbose and --connect options

The README has been updated with the following:

Run opam update before using opam depext to get the latest depext version installed in the switch if not available.
ocluster-scheduler and ocluster-worker do not have the --verbose options.
ocluster-worker does not have the --connect option, but, ./capnp-secrets/ is just passed as the last argument.

Run opam update before using opam depext to get the latest depext version installed in the switch if not available.

Ok, but usually that's not something that is written in readme's.

ocluster-scheduler and ocluster-worker do not have the --verbose options.

That's just a typo, please replace it with -v instead.

ocluster-worker does not have the --connect option, but, ./capnp-secrets/ is just passed as the last argument.

Are you sure? Commit 7202981 replaced the argument with the --connect option.

| Are you sure? Commit 7202981 replaced the argument with the --connect option.
When I followed the installation instructions at https://github.com/ocurrent/ocluster/blob/master/README.md?plain=1#L32, I got ocluster-worker v0.1 installed, and it does not have --connect option.
$ ocluster-worker --version
v0.1

Yes, the README is up-to-date with respect to commits on the master branch, but not with ocluster-worker.0.1 which is an older version not accurately described by the README. Try reading from https://github.com/ocurrent/ocluster/blob/v0.1/README.md instead.
I would advice to work with the latest dev version instead of 0.1.


Website doesn't works well on phone

Hey, it's really hard to use the website on my iPhone.
Basically, everytime I write a letter it scrolls and I can't see what I'm writting
https://github.com/sharkdp/numbat/assets/7032172/431b8e88-08a6-4f7e-9c23-7826f19b1704
Second thing is I can't fix my typos. I basically can't move the cursor at all.
I had the same issues with insect.sh btw

Have the similar issues on my Android phone.
When I hit space after a unit, it evaluates the line I just wrote.
Works fine without units.

I was afraid that this would be the case :frowning_face:
It sort of works on Firefox for Android — which is the only browser I tested. But even there, it is very far from being fun to work with.
Any help in improving this situation would be very much appreciated. Maybe it can be fixed with a few CSS changes, but my CSS "skills" are not enough to work on this myself.
I could also imagine that it is easier to improve the situation by switching to another terminal-in-the-browser library, such as http://xtermjs.org/?

Just as a side remark.. I am working on a mobile version. I think it makes sense to have a mobile-oriented user interface that does not focus on typing in the same way that the current desktop-oriented interface does with its readline-like interface (which relies on the existence of arrow keys, Ctrl-R, etc).
Sneak peek:

As a quick workaround, I tried the suggestions here and listening to resize and orientationchange events on the window. Unfortunately, the new meta attributes are not supported on iOS Safari (though I'm not sure that would fix the issue anyway). Resize events do seem to fire when the virtual keyboard pops up, but window.innerSize has not updated by this point. Instead, the inner size changes after you start typing, but no event is fired at that point. I guess we could use a mutation listener or something to capture it, but this is pretty tricky to get right. The better solution does seem to be to use a mobile-oriented UI. I'm trying to figure out if jQuery Terminal has any features to overcome this but haven't found anything yet.

Here's the canonical jQuery Terminal issue with the fix. Not sure when it'll actually be merged or if it requires any library changes.

@sharkdp Do you have a preview branch with this mobile UI by any chance? I'd love to test it out (especially with the new offline PWA stuff). 🙂

So the screenshot I was showing is from a completely separate project where I built a mobile Numbat app with tauri. It uses web technologies for the frontend, but has a native backend (aarch64 on my smart phone), as opposed to the WASM backend that the web version uses. To be completely honest, I'm not yet sure if I am going to release it as open source. I was playing with the idea of releasing that as a ("open core") payed app for Android/iOS. I do not enjoy frontend work, so I thought the idea of (potentially, eventually) getting payed for it might be a motivation boost. But it's probably a ridiculous idea anyway, so feel free to talk me out of it :smile:.

Also related: apparently the author of jQuery Terminal is switching focus to https://github.com/pure-terminal/pure-terminal, which does not have the jQuery dependency. Not sure if it would address this issue or how easy it would be to switch to that.

Interesting! Adapting the JavaScript code to a new terminal emulator should be fairly quick, even if the API has completely changed. I'm not sure how long it would take to re-do the CSS things I did years ago to make the terminal look... a bit more modern.

Also related: apparently the author of jQuery Terminal is switching focus to https://github.com/pure-terminal/pure-terminal, which does not have the jQuery dependency. Not sure if it would address this issue or how easy it would be to switch to that.

Interesting! Adapting the JavaScript code to a new terminal emulator should be fairly quick, even if the API has completely changed. I'm not sure how long it would take to re-do the CSS things I did years ago to make the terminal look... a bit more modern.

To be clear, I'm not sure whether that new emulator would actually fix the mobile scrolling/display issues. I'm all for modernizing it though. :) I'm starting to think that xterm.js makes more sense for keyboard-oriented inputs in any case.

Full disclosure: I'm not a frontend developer, but I do have some recent experience with doing basic stuff in some personal projects.
Are you using Tauri proper or Dioxus? If you hate web development already, Tauri makes that even more complicated because you're integrating standard web UI stuff with complex interop. Dioxus is a bit more Rust-friendly, as it ships with a custom rsx! macro (similar to JSX/TSX used in React). This is pretty quick to get started with if you're familiar with the React way of doing things.

To be completely honest, I'm not yet sure if I am going to release it as open source. I was playing with the idea of releasing that as a ("open core") payed app for Android/iOS. I do not enjoy frontend work, so I thought the idea of (potentially, eventually) getting payed for it might be a motivation boost. But it's probably a ridiculous idea anyway, so feel free to talk me out of it 😄.

I don't want to talk you out of that if it's something you're serious about. I would probably even buy the app just to support the effort, especially if it's a great mobile experience. 😀
On the other hand, OSS definitely appeals to me and I would love to have as much of this as possible open. That makes it easier for other contributors to help and also makes it more extensible and embeddable. The idea of a PWA in particular really appeals to me because it opens the potential to automatically get support for new platforms that don't exist yet and allows a fully unified code base for all platforms. (Plus I'm allergic to app stores and their distribution policies in general. 😂)
If I were to do a web version of Numbat from scratch (or at least a fully reworked version), I would probably use Lit both because I'm familiar with it and it's more open, extensible, and embeddable than React. (React components do not play nicely with the rest of the web (unlike custom components, which are a web standard that Lit plugs into). I also have a strong preference for Lit due to its security measures, particularly in its HTML templating system. Anyway, the reason that I bring this up is because I was thinking of experimenting with a new mobile UI myself. In any case, I think that should proceed in parallel with whatever you're doing, as I don't know if mine will pan out.
If you did want to go the route of creating a private app, it would be nice to keep any WASM/web-specific plugin points and extensions in the open in order to make development of new UIs faster. I already spent some time thinking about APIs that might make this nicer, such as fuzzy querying for type, function, and variable names (for auto-complete), extension points (such as hosting WASM UDFs, which could also work in CLI and provide sandboxing for third-party plugins; CLI could even expose WASI for "real" work), a pluggable configuration system to allow configs/modules to be stored in an FS-agnostic way (e.g., to be used with the origin-private FS or FS Access API or IndexedDB on the web, on local disk for the CLI).
It's pretty pie-in-the-sky for me right now because I don't know how difficult much of this would be to implement or really how much I would want it once I had a working mobile app. It's mostly just driven by my desire to have a tool like this at my fingertips at all times through my phone. I've had a pipe dream of shipping GNU Units as a WASM web app for a while, but couldn't figure out how to make the experience nice. Numbat is already a great deal of the way there and has a better type system to boot. 😄

It doesn't work well with my phone's onscreen keyboards, but with a physical keyboard (e.g. scrcpy -K) it works without issues. I guess it has conflicts with those composition events.
Also, while the input works in a desktop browser, the input method window isn't where it should be.

I have found that the experimental interface from #536 works better although not perfectly on my phone. It can be found here: https://numbat.dev/editor.html

The text of https://numbat.dev/editor.html is too big on my phone :-(
(It's very big on desktop as well but that's less a problem.)

Like I wrote in https://github.com/sharkdp/numbat/pull/550, any help on improving HTML/CSS/JS is very much appreciated.

Like I wrote in https://github.com/sharkdp/numbat/pull/550, any help on improving HTML/CSS/JS is very much appreciated.

Do you have any preference in regard to the use of frameworks for it?

Do you have any preference in regard to the use of frameworks for it?

No. If you think we definitely need a framework for this, please feel free to choose whatever you like best for this task.

No. If you think we definitely need a framework for this, please feel free to choose whatever you like best for this task.

I don't think we definitely need it, it's just where I have the most experience. I will tinker with it a bit and see if I can figure something out to improve it. Then I can always make an alternative implementation with a framework if I don't like the results.


Possible to stub a field?

This may be a feature request and is related to #368
When spying + stubbing a field, the stub is actually on the getter but not on the field used internally in the class, as this snippet shows:
class B {
    var property: String? = null
        private set

    fun methodA(): String? = (::property).get() // OK
    fun methodB(): String? = property // KO
}

@Test
fun `spy and stub a property doesn't stub the internal field`() {
    val b = spy(B())
    whenever(b.property).doReturn("A string")
    b.methodA() `should be` "A string" // Passed
    b.methodB() `should be` "A string" // Failed: output is null
}

It's not very user-friendly, so could we improve in some ways for this? (Maybe a lint warning or something in the base documentation, if it's not technically feasible?)

I understood the behaviour, but I don't think it's user friendly.
What if whenever(b.property) mocks the property and the getter by default?


Support tooltips for non-controls in ValidatorBase and add documentation

In PR #1013, I did this same fix, but on an old version of ValidatorBase. This applies that same fix to the most recent version, instead.
While I was at it, I also added documentation for almost everything in ValidatorBase. Feel free to check my work, as I'm not the original author of the class—what I wrote is based on assumptions.

I'll try to review this asap

Hi @TurekBot, It looks fine to me. But I think we should also support JFXTooltip, so we might need to use a different approach. btw the documentation looks great :) 👍

Thanks, @jfoenixadmin. :+1:
I'm not familiar with JFXTooltip, but I'd be happy to make this work for it as well.
What part of it needs a different approach, it seems like JFXTooltip still gets "installed" using the same key in the Node's properties.

@TurekBot, maybe we should update the existing tooltip text instead of creating a new one. Or provide a tooltip supplier for the validator base. Or Both  (still thinking about it...)

I do like the idea of having a default supplier, but then allowing the developer to provide a different supplier if they so choose.
We'll also need to consider that tooltips have both text and a graphic, so if we take the copying and updating route, we'd have to consider copying over both.
I suppose we could have a callback of sorts where we provide the developer with the existing tooltip and then they can do what they will with it and then return it. We'd provide a reasonable default callback and the developer can change it if they like.

@TurekBot , I was reviewing ValidatorBase class, and I noticed it extends Parent class. which doesn't make sense (not sure what was I thinking back then :s). So I think we need to update ValidatorBase so support the following:

Multiple source controls, so the validator itself is reusable for different nodes (so we need to keep track of multiple saved tooltips in a map where the key is the source control itself).
Custom tooltips (I think by providing a callback or a function that takes the error msg as an argument and returns the tooltip would be a good impl)
Support JFXTooltip

For now, I'll accept the PR then update ValidatorBase to support these features.
what do you think @TurekBot?

@jfoenix, I agree, those things sound good.
One thing I'd add is that the "source control" should probably be of type ’Node’, if it's not already.
I've found myself various times needing to use a modified version of ValidatorFacade to validate non-Control nodes. Sometimes it's a WebView. I imagine there are others but I can't think of them.
What do you think?

@TurekBot I agree, it should be of type node.


Problem with Flatpickr and Turbolinks

Hi, guys!
Probably due to Turbolinks cache, if I select a date using Flatpickr on a form page, go back to the last page (without saving) and then return again to the form page, this is what I get:

Hello,
Could you please check if the issue is still present?
If it its, please provide a fiddle (if possible).
Thanks for reporting the issue :+1:

Closing due to inactivity.
Kindly re-open when this issue is reproducible in a repo/fiddle :+1:


Fix the zombie error of shader compilation

What I think is happening is that the library object keeps a reference to the error, so we shouldn't release it if the library is created.

Bors r=grovesNL

On Jun 29, 2018, at 21:30, Josh Groves<EMAIL_ADDRESS>wrote:
@grovesNL approved this pull request.
Seems reasonable to me
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Knative build creates duplicate pods

Knative build consistently creates duplicate builds. This is my build definition:
apiVersion: build.knative.dev/v1alpha1
kind: Build
metadata:
  name: build-helloworld-csharp-gcr
spec:
  source:
    git:
      url: "https://github.com/knative/docs.git"
      revision: "v0.1.x"
    subPath: "serving/samples/helloworld-csharp/"
  steps:
  - name: build-and-push
    image: "gcr.io/kaniko-project/executor:v0.6.0"
    args:
    - "--dockerfile=/workspace/Dockerfile"
    - "--destination=gcr.io/MY_GCP_PROJECT/helloworld-csharp:v1"`

> kubectl get build
No resources found.
> kubectl apply -f build-helloworld-csharp-gcr.yaml
build.build.knative.dev "build-helloworld-csharp-gcr" created
> kubectl get build
NAME                          AGE
build-helloworld-csharp-gcr   5s
> kubectl get pods
NAME                                              READY     STATUS     RESTARTS   AGE
build-helloworld-csharp-gcr-pod-e7d4b1            0/1       Init:2/3   0          8s
build-helloworld-csharp-gcr-pod-ea29fd            0/1       Init:1/3   0          7s

The first one gets stuck in this step:
INFO[0083] Taking snapshot of full filesystem...

The second one builds and pushes to GCR.

Can we back port #519 to the release-0.3 branch?
I'm seeing builds collide and failing when using a cache volume. It's odd that two pods would be able to mount the same PVC in RW mode simultaneously, but that's what's happening.

@sebgoa with v0.3.0 I see duplicate build pods ~20% of the time. With #519 cherry-picked on v0.3.0 I saw zero duplicate pods in 20 builds. I don't doubt that there may be other funkiness, but there is only a single pod per build with that patch.

@scothis it's a bit hard to reproduce, but we're constantly seeing incorrect PodName in BuildStatus structure that we're getting with Go client right after service deployment starts. This only happens if we run at least two different service deployments in parallel.
Here is an example fragment of getting build status with request loop to show that build pod name changes over the time:
// this part goes right after service "Update" method being executed
for i := 0; i < 4; i++ {
		build, err := clientset.BuildV1alpha1().Builds(namespace).Get(buildName, metav1.GetOptions{})
		if err != nil {
			return "", err
		}
		fmt.Printf("%+v\n", build.Status.Cluster)
                time.Sleep(time.Second * 1)
}

and response:
&{Namespace:tzununbekov PodName:knative-test-nodejs-00009-pod-76cd7f}   // this pod doesn't exist
&{Namespace:tzununbekov PodName:knative-test-nodejs-00009-pod-6f48df}    // this is correct one
&{Namespace:tzununbekov PodName:knative-test-nodejs-00009-pod-6f48df}
&{Namespace:tzununbekov PodName:knative-test-nodejs-00009-pod-6f48df}

If this doesn't shed light on a possible problem, I'll try to get more detailed information about it

Can anyone top five pods for a single build? 😄
$ kubectl get pod
NAME                     READY   STATUS     RESTARTS   AGE
upper-00001-pod-185ece   0/1     Init:5/7   0          25s
upper-00001-pod-1b487e   0/1     Init:4/7   0          13s
upper-00001-pod-2420b5   0/1     Init:5/7   0          23s
upper-00001-pod-c5c559   0/1     Init:5/7   0          21s
upper-00001-pod-e2b088   0/1     Init:5/7   0          27s

We have a project on gitlab that runs function deployment on knative. Using our CLI tm it creates parallel builds and we consistently see this problem arise.
https://gitlab.com/sebgoa/kdemo
I am happy to help someone setup a test like this on their cluster.
What is really strange is that once a build fails because it gets the wrong pod name as described by Timur above, it seems that the controller gets stuck. That particular build will not recover but other builds may  succeed.

Freshly installed knative 0.3 to our new EKS cluster and saw this happening 3 out of 3 times. Is there any possibility that we can get #519 with a new release, aka 0.3.1?

We're about a week away from cutting 0.4 which would include this fix, is there any chance you could hold on until then, or run build from HEAD until then?

Sure, no problem, thanks for the great project.


Different HTML error response in 4.15

I have an issue since updating to express 4.15, where previously a response was returned as a simple string response, it is now being wrapped in HTML. E.g.
<!DOCTYPE html>

<meta charset="utf-8">
<title>Error</title>

My Response Message

Our code is unchanged, the only change identified is the update to express.
Essentially, we have an express config app.use checking for a missing content-type header and handling the response.  Here’s the example…
class ExpressConfig
{
    public static Configure(app: express.Express): void
    {
            app.use(MyParser.bind({}));
    }
}

class MyParser
{
    constructor(req: express.Request, res: express.Response, next: Function)
    {
        if (!req.headers['content-type'] && req.method === "post")
        {
            res.status(400);
            return next("Content-Type parameter not provided; please provide either Content-Type: application/json or Content-Type: text/xml");
        }

        return next();
    }
}

Can anyone confirm that the express update has caused this change? and what I can do to undo the change (without reverting to an earlier version of express).

This is a change in the default error handler. The response has always been HTML, just now will no longer create documents that can be coerced into be interpreted different from HTML in web browser as an attack vector.
If you want to rely on a specific output of error besides just a generic HTML document as it has always been, you'll want to define your own custom error handler at the bottom of your app: http://expressjs.com/en/guide/error-handling.html

As for the code you pasted above, I'm not sure why you are trying to respond using return next(string); to write a response, you should be using return res.send(string), in which case nothing would have changed.

We have the same issue for one of our API solutions.  In our case we rely on an internal package that is not controlled by our team.  That package has the dependency on express.  We have simply requested that they pin the express version to 4.14.
I just wanted to make the point that such breaking changes do have an impact on their dependants.  In our case and I'm sure in many cases, there are not the resources available to update the code to fix an unscheduled bug when there is a quick fix available.  Then the code falls behind on updates and potentially keeps holes in security open.  But it might also lead to a decision in the future to drop a dependency in favour of something else; because the work involved in adopting the latest version is the same as using a different package.
That's a lot of points.  I guess we just have to accept that it is a chaotic environment to develop in and you can't please everybody :)

This isn't a breaking change; the output has always been HTML.


Issue with 'lodash/merge'

Hi,
I've been looking to use react-pagify for one of our company's project. After installing module depencies appropriately, it appears that react-pagify cannot find the lodash/merge modules, thus blocking the project compilation. After looking quickly into your code, i found that commit might be responsible for it ( 3088cdee756f5213b7cd16524156ee1ece9c06bb ).
Thanks for the time spent investigating this issue.

lodash/merge is something lodash 4 specific. Are you on lodash 3?
We could perhaps refactor the code so that you could inject merge. This would break the dependency.

Ah, I see it now... It's that external definition causing the issues.

@Joramt I fixed the external issue at 2.0.3. Let me know if there are any further issues.


Set up the development environment

As a developer
I need to set up the development environment
So that I can start building and testing the microservice
Details and Assumptions

The development environment includes necessary tools like Node.js, Docker, and a code editor
Proper environment variables must be configured

Acceptance Criteria
Given I have installed all required dependencies
When I run the microservice
Then it should start without errors

This project is to be done in one week and as quick as possibel


qiskit.execute(...) can not bind parameters

qiskit versions have issues: 0.25.1, 0.25.4
qiskit.execute(..., parameter_bind=[param_dict])    # #param_dict: a python dictionary
got error message:
...
File "/home/kfq/.local/lib/python3.8/site-packages/qiskit/providers/aer/backends/aerbackend.py", line 156, in run
qobj = assemble(circuits, self)
File "/home/kfq/.local/lib/python3.8/site-packages/qiskit/compiler/assembler.py", line 150, in assemble
bound_experiments, run_config = _expand_parameters(circuits=experiments,
File "/home/kfq/.local/lib/python3.8/site-packages/qiskit/compiler/assembler.py", line 441, in _expand_parameters
raise QiskitError(
qiskit.exceptions.QiskitError: 'Mismatch between run_config.parameter_binds and all circuit parameters. Parameter binds: [] Circuit parameters: [ParameterView([Parameter(theta)])]'
Same expression can be executed with qiskit 0.24.1 without any issue.

I solved this issue by doing:
circuit = circuit.bind_parameters({p: [0, 1, 2]}) # p is a ParameterVector
Then you can execute the circuit.

Looks like this is  AerBackend.run() calls  execute_function.execute(...) without passing **run_options, which becomes a problem when assembles._expand_parameters gets called.
AerBackend is set up to add the run options after the circuit is assembled, so adding these to execute should fix it.

Same problem here. What should I do to run it without error after all?  Does anyone know?

@m-i-w 's description of the problem is spot on (there is an open issue and WIP PR in Aer to resolve this, slated for the next Aer release: https://github.com/Qiskit/qiskit-aer/issues/1249 ). Until then, @Faridelnik 's workaround should allow you to run without error.

This should be resolved by https://github.com/Qiskit/qiskit-aer/pull/1317 in the next Aer release.


Cannot update password for user

Hey this is a great library and it's been working very well so far. However I can't update users' password.
I am not using admin client in master realm. I am using a newly created realm and client and I have assigned all the user management permission to the client.
I tried to call user/update-user! and passed email, firstname, lastname, pasword to see how it works,  everything updated except for password. But my actual intention is to update the password. Do you have any idea? thanks

Yes, this is the current behaviour as IMHO the password change feature should be used with caution and should be made by the user with the Keycloak update/lost password feature.
I push a refactoring commit, but without proper tests for the moment as I didn't have the time right now to write them. Could you tell me if it works nonetheless?

I didn't publish a new version as there isn't a proper test for the moment but you could include the last version with tools.deps and {:git/url "https://github.com/jgrodziski/keycloak-clojure" :sha "ba5488b9eee3ff6c67311615ce445b3c92c680af"}

I see. I just googled a bit for that, it is considered unsafe to support credentials modifications via REST API. They now only supports AIA for user, or Admin Rest API for backend to handle user reset password request. So, I should use Admin Rest API to handle reset password for user right? If this is the case, for this part, I think I should directly call keycloak /reset-password API instead?
Appreciate your work!! thanks

Are you willing to share snippets on how did you integrate the keycloak-clojure in your project? I've been trying to integrate it to my Ring API and have failed miserably. Any help would be appreciated.

I have some Ring middlewares regarding authentication, access control headers and authorization but not very battle tested for the moment. I can nonetheless merge them in Keycloak-Clojure asap.

I have some Ring middlewares regarding authentication, access control headers and authorization but not very battle tested for the moment. I can nonetheless merge them in Keycloak-Clojure asap.

How long might it take? Its been quite a long already. Thanks.

Yes it is on its way, my clients work takes me lot of time at the moment. I can nevertheless commit the ring middlewares and let you know.


WIP: Add KUBERNETES_SERVICE_HOST env variable to synced pods

Mutates synced pods with:
KUBERNETES_SERVICE_HOST=kubernetes

/ok-to-test

I suggest you change here
https://github.com/kubernetes-sigs/multi-tenancy/blob/23e6e2489656e0888094810314ae382c5fe0dfcd/incubator/virtualcluster/pkg/syncer/conversion/mutate.go#L275 , which may lead to the least code change.
Also please add a comment to explain why this special conversion is needed in the code.

I suggest you change here
https://github.com/kubernetes-sigs/multi-tenancy/blob/23e6e2489656e0888094810314ae382c5fe0dfcd/incubator/virtualcluster/pkg/syncer/conversion/mutate.go#L275
, which may lead to the least code change.
Also please add a comment to explain why this special conversion is needed in the code.
Btw, please change the copyright year if you touch any old files.

Is this loop just targeting pods that are exposed via services? I think we would want this change to apply to containers that are also not exposed. I'll add a comment as well :)

I suggest you change here
https://github.com/kubernetes-sigs/multi-tenancy/blob/23e6e2489656e0888094810314ae382c5fe0dfcd/incubator/virtualcluster/pkg/syncer/conversion/mutate.go#L275
, which may lead to the least code change.
Also please add a comment to explain why this special conversion is needed in the code.
Btw, please change the copyright year if you touch any old files.

Is this loop just targeting pods that are exposed via services? I think we would want this change to apply to containers that are also not exposed. I'll add a comment as well :)

I believe it targets all Pods since every Pod needs to have Kubernetes service. Correct me if I am wrong.

@Fei-Guo pushed an update based on your comment :) Tests are still passing

Excellent, a comment would be preferred for the change.

@Fei-Guo added comment, tests still ok

/lgtm
/approve


CLI not replacing forward slashes with " :: " string for JOB_NAME same as current plugin

Describe the bug
When using the current artifactory jenkins plugin in a freestyle job or pipeline jobs, the build name (coming from the jenkins JOB_NAME variable) when published has all the "/" characters replaced with the string " :: ". So for example a jenkins JOB_NAME of "sample/job" would show as "sample :: job" in the build name in Artifactory.
When using the jf CLI however, it looks like it is not applying the same conversion to the --build_name parameter.   So the build name still has the "/" characters if uploaded with jf command line and converted to " :: " when using the plugin.
Can the jf CLI be configured to do the same string conversion on the build_name so it behaves the same way as the pipeline code and the legacy jenkins plugin??
Current behavior
Forward slashes in build-name are NOT converted to " :: "
Reproduction steps
Pass --build_name=sample/job parameter to jf upload command
Expected behavior
Expected build-name parameter to have "/" converted to " :: " to behave the same as the current freestyle plugin and jenkins pipeline code
JFrog CLI version
2.34.1
Operating system type and version
Windows and Unix
JFrog Artifactory version
7.49.8
JFrog Xray version
No response

@lweitzel01 thanks for using the Jenkins JFrog plugin!
The replacement from / to :: in the old Jenkins Artifactory plugin was dedicated to resolving issues we think don't exist anymore. The JFrog CLI is powerful enough to handle all edge cases.
You can still set the JFROG_CLI_BUILD_NAME environment variable to your desired value. For example, to get the same behavior as it was in the old Artifactory plugin, do the following:
environment {
    JFROG_CLI_BUILD_NAME = "${env.JOB_NAME}".replace('/', ' :: ')
}

Please let us know what you think.

Yahav,
Thanks for the response.  I currently have Case #240622 open for this issue with JFrog.
Within our enterprise we have many application using the current pipeline plugins and teams using freestyle jobs.   They are currently not using the JF CLI so the above solution would not work.   For the teams that I need to move to using the JF command, I was really hoping that there could be some kind of switch added to the command line to mimc the behavior.   This would be preferrable to having teams add extra environment variables with string replacements and then our build names across the enterprise could still be consistent regardless of the method used.
Our existing build patterns in permissons also utilize the " :; " nomenclature which make migrating to "/" difficult.
There is also an existing bug in the CLI which crashes when the "/" command is used which has still not been corrected.  ((XRAY-11984).   The solution is to use the deprecated jf rt build-scan syntax.  However, once that no longer functions, than I would have to have teams make a change again.   Adding this functionality to the jf CLI would allow me to roll this out to our enterprise now and not have to make a change again in the near future.
Any chance this could be added to the JF command?

The other think I've noticed with using :: in the build-name is that artifacts had issues navigating back and forth between the artifact and the build itself. Though this was an older version of artifactory, so ... it may already have been fixed.
As a result of this, we've gone with naming our projects limiting the name to ' ' and '-' and avoiding special characters like ::, & or / \


bring back Mojo::Snoo::Thing

Mojo::Snoo::Thing is now Mojo::Snoo::Link. However, we could bring back Mojo::Snoo::Thing to act as a wrapper for reddit's Thing types. See http://www.reddit.com/dev/api#fullnames for more details about Thing types.
For example, one can create a Mojo::Snoo::Link object using one of two ways:
Mojo::Snoo::Link->new('15bfi0');
Mojo::Snoo::Thing->new('t3_15bfi0');

Notice t3_ has been added so that Mojo::Snoo::Thing can determine the Thing's type.

fix here (and test!) https://github.com/aggrolite/Mojo-Snoo/pull/17


refactor: fix gofmt error.

report from go report card https://goreportcard.com/report/github.com/crgimenes/goConfig#gofmt

Thank you!


fix typo

Codecov Report

Merging #231 (ba1be37) into main (c3bbf82) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head ba1be37 differs from pull request most recent head a2c38ef. Consider uploading reports for the commit a2c38ef to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #231   +/-   ##
=======================================
  Coverage   76.42%   76.42%
=======================================
  Files         152      152
  Lines        8406     8406
=======================================
  Hits         6424     6424
  Misses       1656     1656
  Partials      326      326

Flag
Coverage Δ

unittests
76.42% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


I am getting this error - 'BenjaminFavre\OAuthHttpClient\OAuthHttpClient' does not implement method 'withOptions'

I am trying to follow your bundle as it is very straightforward and easy to implement but unfortunately I encountered these errors from OAuthHttpClient.php

Hello, it seems the lib is not loaded, nothing I can do about it. Did you use composer to install it ? If yes, are you requiring the autoload file ? If you dont use composer, you’ll have to require all files from the lib.

@BenjaminFavre it's caused by Symfony's debug class loader:
[info] User Deprecated: Class "BenjaminFavre\OAuthHttpClient\OAuthHttpClient" should implement method "Symfony\Contracts\HttpClient\HttpClientInterface::withOptions(array $options): static": Returns a new instance of the client with new default options.

see
https://github.com/symfony/http-client-contracts/blob/v2.5.0/HttpClientInterface.php#L22
vs
https://github.com/symfony/http-client-contracts/blob/v3.0.0/HttpClientInterface.php#L97

Solved in 2.0.0 !


Why alice doesn't accept a basic handler in the Then() method?

I'm trying to create a website with httprouter and alice. I saw that alice has the nice option to do alice.New().Then() and pass in the Then() a handler to be executed. Sadly, I can only pass a handler declared as this: func myhandler(w http.ResponseWriter, r *http.Request) { if I only wrap it in an http.HandlerFunc() first. Why isn't possible to just pass one of those? Assuming there's a good chance that the majority of the users will be passing one of those handlers there?

Nevermind. I just found the ThenFunc() which allows to pass one like the one I have.


untypsignia:0.1.0

I am submitting

[x] a new package
[ ] an update for a package

Description: The typical use case of untypsignia in Typst is to emulate a given typesetting system's mark, if available, when referring to them, in sentences like: "This document is typeset in XYZ", as traditionally done in TeX systems and derivatives thereof.

I have read and followed the submission guidelines and, in particular, I

[x] selected a name that isn't the most obvious or canonical name for what the package does
[x] added a typst.toml file with all required keys
[x] added a README.md with documentation for my package
[x] have chosen a license and added a LICENSE file or linked one in my README.md
[x] tested my package locally on my system and it worked
[x] excluded PDFs or README images, if any, but not the LICENSE

[x] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.

Thank you :)