Switching Go version when process.env["GOROOT"] is set is unsupported.

How can I make it work correct on VSCODE?
Apple M2 Pro;
VSCODE: Version: 1.87.2
If I set goenv global, the vscode will always use the global set. I can not change it into the local go version.
I must change the global and reload the vscode.
I can not work with vscode using other go versions.
Thanks.

Hello @wakaryry sorry for the late reply, could you elaborate a bit more about your setup?
I don't know all of the logic yet, I understand that your problem is local not working when global and GOROOT are both set? Are local and global showing the correct (different) values?
I couldn't reproduce this yet, we have 300 test cases... did you follow the INSTALL.md (especially 4. goenv manages GOROOT) and ENVIRONMENT_VARIABLES.md (especially GOENV_DISABLE_GOROOT)? Did you install into .bash_profile or .bashrc (see 4.)?
Can you post $ env | grep GO in your local folder / environment?

I don't know enough about all inner workings, goenv local works, but global does not.

goenv local 1.22.3
goenv root  # copy that path, usually the result of your user $HOME/.goenv
Go to Settings / Extensions / Go
Alternate Tools: Edit in settings.json
Change the block to the copied path and append /shims

"go.alternateTools": {
  "go": "/Users/myuser/.goenv/shims"
}

exec $SHELL # or open a new terminal
go version # should show go1.22.3

Everytime you change goenv local you should run exec $SHELL or open a new terminal.

@ChronosMasterOfAllTime I saw multiple problems locally:

There was a $HOME/.go-version file (maybe from local development?), so even after goenv local --unset the code uses goenv version-file $PWD which is allowed to search all the way up to that folder so goenv local still showed that version (1.21.10)
After I deleted that file manually, goenv local (unset) and goenv global (1.22.3) worked
After goenv global system I found no way to update the shims with goenv rehash, they still pointed to the old global, so system (1.22.4) can't be used inside the shims folder

My expectation would be:

goenv local only respects the "local" folder $PWD/.go-version (goenv version-file $PWD should not search all the way up until $HOME/.go-version, only inside the project folder if currently inside a subdirectory, otherwise that would be a local global version 😅)
goenv local --unset allows goenv global to use ${GOENV_ROOT}/version (goenv version-file should find it, this is working)
goenv global system should rehash the shims to use the system Go if installed
goenv local and goenv global should rehash the shims in general when a version is installed/found

@ChronosMasterOfAllTime I saw multiple problems locally:

There was a $HOME/.go-version file (maybe from local development?), so even after goenv local --unset the code uses goenv version-file $PWD which is allowed to search all the way up to that folder so goenv local still showed that version (1.21.10)
After I deleted that file manually, goenv local (unset) and goenv global (1.22.3) worked
After goenv global system I found no way to update the shims with goenv rehash, they still pointed to the old global, so system (1.22.4) can't be used inside the shims folder

My expectation would be:

goenv local only respects the "local" folder $PWD/.go-version (goenv version-file $PWD should not search all the way up until $HOME/.go-version, only inside the project folder if currently inside a subdirectory, otherwise that would be a local global version 😅)
goenv local --unset allows goenv global to use ${GOENV_ROOT}/version (goenv version-file should find it, this is working)
goenv global system should rehash the shims to use the system Go if installed (and --unset should be added to be symmetrical to local)
goenv local and goenv global should rehash the shims in general after an installed version has been set
goenv local and goenv global should call exec $SHELL (or -l) if configured by the user (internally a new reload command)
Then VS Code users could be happy again 😄

Nice find! I would certainly welcome a PR since you did a solid job of RCA'ing this.


checkpoint type error

Try to figure out a way to run deepspeed inference following the tutorial, but run into error:
assert False, '{} checkpoint type is not supported'.format(sd_type)
AssertionError: DeepSpeed checkpoint type is not supported
The error came from the initialization:
ds_engine = deepspeed.init_inference(dalle,
                                     checkpoint="./checkpoint.json")

checkpoint.json:
{
    "type": "DeepSpeed",
    "version": 0.3,
    "checkpoints": "./ckpt/epoch5.pt"
}

Any suggestion on this issue?  Or a sample code to set inference up would be appreciated.

Same error here. It looks like Deepspeed checkpoint is not supported? Only Megatron is supported.

Might be related to
https://github.com/microsoft/DeepSpeed/issues/1196


Roll engine d41e33dbe447..1c104d435994 (1 commits)

git@github.com:flutter/engine.git/compare/d41e33dbe447...1c104d435994
git log d41e33dbe447..1c104d435994 --no-merges --oneline
2019-10-26<EMAIL_ADDRESS>Roll src/third_party/dart 5e44c0b016..6354b0b97d (8 commits)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Auto-roller completed checks. About to merge.


image/cache: fix isValidParent logic

Fix https://github.com/docker/docker/issues/31186
Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>

I'll add a test asap, in the middle of something else now.

/cc @tonistiigi @cpuguy83

LGTM, but needs a test

Yes, as noted above, I'll need to add one.

I think isValidParent should be renamed, since it's no longer checking for a parent/child relationship.

I think isValidParent should be renamed, since it's no longer checking for a parent/child relationship.

I'll add another commit to change that or follow up (do you have any suggestion on the new name?)

I'll add another commit to change that or follow up (do you have any suggestion on the new name?)

Actually, I might have misunderstood the fix.
I see that isValidParent still checks if len(parent.History) >= len(img.History) { (not >).
So it seems like it still is checking for a parent, but you fixed a problem that happens if the parent has the same number of filesystem layers. If this is the case, the name doesn't need to change.
LGTM


Vision Alignment Changes

[x] Pipeline switcher in state machine
[x] feed in forward/backward at all times
[x] feed in left/right when no target
[x] Turn LEDs off when not targeting
[ ] Set LED brightness in code
[x] Set driver mode to false

since we're not sure if we can set led brightness should we still keep it on the list?


A way to print arbitrary binary data safely?

I want to see a sample of the data that's being written to disk, but I don't want to accidentally print some binary junk and kill my terminal with unintended ANSI control characters. I'd love some kind of formatting option like Python's %r where non-text bytes are replaced with \xNN escape codes :)
$ python -c 'print("%r" % open("/dev/urandom").read(16))'
'GtlR\xb2\x03n\x18\xda)\xe9#\x85"\xca\xda'

Sounds pretty reasonable to me.

same for tracepoints like sys_enter_sendto, where there is a void * buff. It would be nice, to print the content of buff.

It's hacky but it is possible to write
tracepoint:syscalls:sys_enter_sendto {
  $len = args->len;
  $p = args->buff;
  $i = (uint64)0;
  unroll(20) {
    if ($i < $len) {
      $c = *(uint8*)$p;
      if ($c >= 32 && $c <= 126) {
        printf("%c", $c);
      } else {
        printf("\\x%02x", $c);
      }
    }
    $p += 1;
    $i += 1;
  }
  printf("\n");
}

% sudo ./src/bpftrace sendto.bt -c "ping <IP_ADDRESS> -c1"
Attaching 1 probe...
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
\x08\x00\xba/O\xf6\x00\x01+n\x01^\x00\x00\x00\x00\x01:\x01\x00
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=63 time=13.3 ms

If printf() supports %r, then we can write bpftrace -e 'tracepoint:syscalls:sys_enter_sendto { printf("%r\n", str(args->buff, args->len)); }'

thanks for the great hint @mmisono

I need this too and will work on implementing it in printf


[ Pooling2D ] Set Property for Pooling 2D Layer

This PR provides seting property for pooling 2d layer.
which is,
. stride, padding, pooling_size, pooling type
Self evaluation:

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

Signed-off-by: jijoong.moon<EMAIL_ADDRESS>

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

:octocat: cibot: @jijoongmoon, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnsuite.mooo.com/nntrainer/ci/repo-workers/pr-checker/163-202006151304140.85420489311218-61dd188573d4fc8640c9038c212f052b390db217/.


Bicep Build Task ability to recurse the entire directory tree

Currently the task allows you to set a directory of bicep files. It would be nice if the task could recurse a whole directory tree and convert any bicep file it finds and output to the same directory.

Hello @brekus , thank you for the suggestion.
I will work on this as a new feature as soon as possible.
Thanks!


feat: add rpath_allowlist to the recipe

This PR makes it possible to define a list of glob paths allowing rpaths that are outside of the environment.
build:
  dynamic_linking:
    rpath_allowlist: [""]

Todolist:

[ ] Add tests
[ ] Do we need an example for this? If so, how should we do that?

Looks like a great start! Would be nice to see an insta test on how the glob' serializes (because we use serde to store rendered recipes as part of the package).

The glob serializes like the following:
         89 │+        dynamic_linking: Some(
         90 │+            DynamicLinking {
         91 │+                rpath_allowlist: [
         92 │+                    Glob {
         93 │+                        glob: "/usr/lib/**",
         94 │+                        re: "(?-u)^/usr/lib/.*$",
         95 │+                        opts: GlobOptions {
         96 │+                            case_insensitive: false,
         97 │+                            literal_separator: false,
         98 │+                            backslash_escape: true,
         99 │+                            empty_alternates: false,
        100 │+                        },
        101 │+                        tokens: Tokens(
        102 │+                            [
        103 │+                                Literal(
        104 │+                                    '/',
        105 │+                                ),
        106 │+                                Literal(
        107 │+                                    'u',
        108 │+                                ),
        109 │+                                Literal(
        110 │+                                    's',
        111 │+                                ),
        112 │+                                Literal(
        113 │+                                    'r',
        114 │+                                ),
        115 │+                                Literal(
        116 │+                                    '/',
        117 │+                                ),
        118 │+                                Literal(
        119 │+                                    'l',
        120 │+                                ),
        121 │+                                Literal(
        122 │+                                    'i',
        123 │+                                ),
        124 │+                                Literal(
        125 │+                                    'b',
        126 │+                                ),
        127 │+                                RecursiveSuffix,
        128 │+                            ],
        129 │+                        ),
        130 │+                    },
        131 │+                ],
        132 │+            },
        133 │+        ),
   90   134 │     },

Is that fine or should we go with raw string instead?

Wow, that is very verbose and brittle serialization ... i prefer a string, indeed!

I made the changes in ec4b1e52c4002c986014359a45310455dc1df62a
I was going to pass around the DynamicLinking struct but it requires to be public in this case. (pub mod build)
Now I'm working on updating the relink test for Linux. After that I will check out the macOS part.


Linux/Mac needs sudo

Short Description:
added sudo to installation guide
Fixes:

sudo added for linux installation
sudo added for Mac OSX installation

Sudo is needed to install some requirements

@maestroi not needed if you run it inside virtualenv,
instead of messing with your system-wide package I'd prefer using virtualenv.

@widnyana than maybe its good to add that to the linux instruction aswel ?

Agreed that using virtualenv is a safe choice, it lowers the risk of screw up your OS.
If someone would want to use multiple instances of bot by a script just make use of . notation from virtualenv.
Example:
. ./bin/activate

Linux/mac do NOT need sudo for running it- and it's a very bad idea to tell people they need it.

👎 virtualenv is good enough.
The only change we could do is replace "(Optional)" by something like "(Recommended - optional)" in the docs

Changed the instructions to use virtualenv :+1:

@maestroi please explain in the readme why virtualenv is required and it's happily merge it.

There is no need to use virtualenv or sudo on Linux. You should pass --user if you want to install dependencies for your user, like this:
pip install -r requirements.txt --user

@AnAkkk virtualenv is not only about installing packages for the local user. It's about having many clean Python environments and being able to switch between them. Virtualenv is so useful that in Python 3.5 they embedded the idea into a venv module of the standard library.

Wouldn't "Recommended" sound better than "Recommend"?

@douglascamata its done i guess

you have my +1

@douglascamata can you change the label ?

:+1: Thanks!


CA-220

Added idle_in_transaction_session_timeout to parameter group.

Seems like a patch release to me, since this is fixing a bug.

My bad, fixed in f023022af556948cfb6c6366a0071982c9864c50


Add dump:assembly for close-to-assemblable output

We got info about a use case that may benefit significantly from closer-to-machine-assembly output, so doing -dump:assembly with these bits should provide something closer to that. Note that there's still some symopnds in the output, and it doesn't necessarily support every case, but it should be enough for simple analysis. The most complicated part of the change is adding support for what's nearly a two-column mode to Output.
Edit: changed flag to new version.

I don't really like -testtrace:assemblable.  This isn't really a trace.  How about just -dump:assembly.

Tried this out on a few simple cases and got assertion failures while it was iterating through and printing. I know it's just an incomplete prototype but I'm not sure it's very useful as-is without addressing some issues.

I don't really like -testtrace:assemblable. This isn't really a trace. How about just -dump:assembly.

Also, I would remove the BEGIN_CODEGEN_PHASE it's not really a phase as it doesn't modify the IR and that would pollute -dump:backend

Yeah, the reason that I went with testtrace in the first place was to have the codegen phase stuff in there. I'll update to -dump and remove the codegen phase stuff in the next update.

New version uses -dump:assembly as requested, handles significantly more cases, doesn't have the codegen macros, and includes a change to the runtests.py to allow for testing for asserts in flags such as this one, which would normally be hard to test due to baseline conflicts.


converting circular structure to JSON

My backend JSON file looks like this:

When I send a get request, I retrieve my data as nested objects. Restangular.one('api/nodes.json').get();
However when I try to post it again, I encounter an error.

This seem pretty normal when you look at the objects created by Restangular. ( each object has a childrens and a parent. )
Is there a way to solve this with Restangular ?

Ok, it seems the problem is not with Restangular, but with my data binding with d3.js which adds a parent attribute to my objects..
So this issue has nothing to do here :/


sidecar: improve upload error handling logic / add retries

Currently we do a best effort clean up if any of the uploads had failed: https://github.com/improbable-eng/thanos/blob/master/pkg/block/block.go#L88: the Upload() method of the Bucket interface tries to do that only once - and if it fails then we try to clean it up. However, it might just happen (like in my case) that uploading one chunk file had succeed, and Thanos failed to upload another one. Then, it tried to delete the files which obviously had not succeeded because there were still issues with the S3 storage. Thus, we should be a bit smarter here and maybe retry the operations more than once in the Upload() method (defined in the bucket configuration) or do that on the outside and try sending a Get() to check if all of the files had been successfully uploaded a few times, and reupload them, if possible.
ACC:

Add a user configurable option which would make Thanos Sidecar retry uploading (and/or deleting) if it fails. Can either be a per-bucket configuration or a globally configured option.

dup of https://github.com/improbable-eng/thanos/pull/537
I guess let's keep just one thread for this?


ALWAYS use utcnow(), never now()

Coverage decreased (-0.05%) to 94.375% when pulling 1b65c45b56b2d8c58c000add5f05619f900ca54e on swipetospin:master into ea319698aab8c8e1c6f55d4e115808c725bac268 on spulec:master.

Coverage decreased (-0.05%) to 94.375% when pulling 1b65c45b56b2d8c58c000add5f05619f900ca54e on swipetospin:master into ea319698aab8c8e1c6f55d4e115808c725bac268 on spulec:master.

Thanks!


removed "What it is" from style-guide

Describe your changes
removed the what it is from the pt-br/style-guide/
close #2669

Ok @edsoncelio, I will update all the things.

Hey @edsoncelio, I will definitely make all the changes by tomorrow. I am busy with my college project. Apologies for the inconvenience!

Hi @professorabhay!
What's the source of your branch? dev-pt or main branch?
What I can recommend is to clean up your fork and create a new branch from dev-pt and then try to open the PR again.

Hi @edsoncelio ! I think there is some misunderstanding. I create a new branch dev-pt from the dev-pt branch of the origin. But when I open the file to modify then there is no What is it header present in the file. After digging more it's already removed in another PR.
Some Related Images ->

The PR #2668 ->


Better linting

Update jshint tests to also check blueprint files
Add jscs mocha tests
Add a custom Brocfile.js to allow linting with ember build --watch
Fix some existing files to comply with linting rules

Nice!

:D


Fel Horde Quest Refactor

[ ] #676
[ ] starting quests changed to only controlling outland again
[ ] Removal of extra gold mines in Outland
[ ] removal of Quests related to Draenei
[x] Start in Killsorrow
[x] Black Temple is now an Illidari base

preplacedUnitSystem.GetUnit(Constants.UNIT_N081_UNFOCUSED_DEMON_GATE_T0, new Point(-506.6f, -24855.8f))));
This gate needs to be assigned again


Fix a bug where ISVCDecoder::DecodeFrameNoDelay() could fail when decoding an H.264 stream encoded by the Apple HWA encoder.

Let me report a decoding issue and propose a patch to fix it.
I recorded H.264 streams published by Safari and transmitted through a WebRTC SFU server.
When I attempted to decode these streams using openh264 (commit: 3668daf135dea7d18737b01ce32774a7a2ffba32), the method ISVCDecoder::DecodeFrameNoDelay() failed with the error code -4 for some of the streams, whereas popular players like ffplay were able to decode the streams without any errors.
The following file contains an H.264 elementary stream of a failed attempt.
input.h264.gz
While I cannot provide the exact steps to reproduce the issue, it has been confirmed that such a stream can be generated by Safari on macOS 15.0 and iPad 17.6.1.
After inserting additional debug prints and examining the openh264 source code, it was discovered that the error originated from the following code:
https://github.com/cisco/openh264/blob/3668daf135dea7d18737b01ce32774a7a2ffba32/codec/decoder/core/src/decoder_core.cpp#L547-L550
In the attached .h264 file, the iMaxLongTermFrameIdx and pSps->uiLog2MaxFrameNum had values of 13 and 12, respectively. Therefore, the above condition was met, which resulted in the error being returned.
However,  the H.264 specification says as follows:

max_long_term_frame_idx_plus1 minus 1 specifies the maximum value of long-term frame index allowed for long-term reference pictures (until receipt of another value of max_long_term_frame_idx_plus1). The value of max_long_term_frame_idx_plus1 shall be in the range of 0 to max_num_ref_frames, inclusive.
From: [Rec. ITU-T H.264 (08/2021)] <IP_ADDRESS> Decoded reference picture marking semantics (p.97)

Although I am not well-versed in the H.264 specification, it seems that pSps->iNumRefFrames should be used in the code above instead of pSps->uiLog2MaxFrameNum.
In the attached file, the value of pSps->iNumRefFrames was 15. After modifying the code to use pSps->iNumRefFrames (i.e., the code in this PR branch), the decoding process succeeded without any errors.

@BenzhengZhang Merged!


Dark mode: Some UI elements not conform

Upload Wizard Location Selection Step (when uploading a picture, tap the map icon on the screen when description can be entered)
The map should be dark (like the Nearby activity's map):

Feedback (in the app's hamburger menu)
The black font is not great for dark mode.

I feel that even the bottom navigation bar icons are not very much visible in dark mode:

@nicolas-raoul, may I take this issue up?

Thank you for assigning the issue to me. Should I modify the icons too or just fix the feedback dialog and map?

Just these two please, but if you can create an enhancement issue about visibility that would be great. 🙂

Thank you for confirming. I will create an enhancement issue about visibility and restrict to only these two for this issue.


Xorg unable to start in the Archlinux profile under Google Chrome 41

Odd issue in Chrome 41 - startx fails under the arch linux profile. Starting X works fine under firefox. Error log is as follows:
[  1558.254]
X.Org X Server 1.17.1
Release Date: 2015-02-10
[  1558.301] X Protocol Version 11, Revision 0
[  1558.318] Build Operating System: Linux 3.18.6-1-ARCH i686
[  1558.360] Current Operating System: Linux nyu 3.18.6-1-ARCH #1 SMP PREEMPT Sat Feb 7 08:59:29 CET 2015 i686
[  1558.378] Kernel command line: BOOT_IMAGE=../vmlinuz-linux apm=off vga=0x343 video=vesafb:ypan,vremap:8 root=host9p rootfstype=9p rootflags=trans=virtio  quiet initrd=../initramfs-linux.img
[  1558.456] Build Date: 14 March 2015  06:47:44PM
[  1558.466]
[  1558.487] Current version of pixman: 0.32.6
[  1558.546] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  1558.568] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1558.948] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Mar 19 15:13:07 2015
[  1560.793] (==) Using config file: "/etc/X11/xorg.conf"
[  1560.832] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  1560.990] (==) ServerLayout "X.org Configured"
[  1560.997] (**) |-->Screen "Screen0" (0)
[  1561.005] (**) |   |-->Monitor "Monitor0"
[  1561.057] (**) |   |-->Device "Card0"
[  1561.061] (**) |-->Input Device "Mouse0"
[  1561.063] (**) |-->Input Device "Keyboard0"
[  1561.072] (==) Automatically adding devices
[  1561.074] (==) Automatically enabling devices
[  1561.077] (==) Automatically adding GPU devices
[  1561.254] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/OTF/".
[  1561.260] 	Entry deleted from font path.
[  1561.268] 	(Run 'mkfontdir' on "/usr/share/fonts/OTF/").
[  1561.294] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/Type1/".
[  1561.302] 	Entry deleted from font path.
[  1561.307] 	(Run 'mkfontdir' on "/usr/share/fonts/Type1/").
[  1561.356] (**) FontPath set to:
	/usr/share/fonts/misc/,
	/usr/share/fonts/TTF/,
	/usr/share/fonts/100dpi/,
	/usr/share/fonts/75dpi/,
	/usr/share/fonts/misc/,
	/usr/share/fonts/TTF/,
	/usr/share/fonts/100dpi/,
	/usr/share/fonts/75dpi/
[  1561.360] (**) ModulePath set to "/usr/lib/xorg/modules"
[  1561.364] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[  1561.372] (WW) Disabling Mouse0
[  1561.374] (WW) Disabling Keyboard0
[  1561.383] (II) Loader magic: 0x829e700
[  1561.385] (II) Module ABI versions:
[  1561.387] 	X.Org ANSI C Emulation: 0.4
[  1561.390] 	X.Org Video Driver: 19.0
[  1561.393] 	X.Org XInput driver : 21.0
[  1561.394] 	X.Org Server Extension : 9.0
[  1563.042] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c1
[  1563.137] (--) PCI:*(0:0:18:0) 10de:0a20:0000:0000 rev 162
[  1563.174] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[  1563.221] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[  1563.227] (II) LoadModule: "glx"
[  1563.400] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  1566.921] (II) Module glx: vendor="X.Org Foundation"
[  1566.927] 	compiled for 1.17.1, module version = 1.0.0
[  1566.931] 	ABI class: X.Org Server Extension, version 9.0
[  1566.933] (==) AIGLX enabled
[  1566.940] (II) LoadModule: "fbdev"
[  1567.128] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  1567.263] (II) Module fbdev: vendor="X.Org Foundation"
[  1567.266] 	compiled for 1.17.0, module version = 0.4.4
[  1567.269] 	Module class: X.Org Video Driver
[  1567.271] 	ABI class: X.Org Video Driver, version 19.0
[  1567.277] (II) FBDEV: driver for framebuffer: fbdev
[  1567.282] (++) using VT number 1

[  1567.284] (--) controlling tty is VT number 1, auto-enabling KeepTty
[  1567.291] (II) Loading sub module "fbdevhw"
[  1567.298] (II) LoadModule: "fbdevhw"
[  1567.442] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[  1567.570] (II) Module fbdevhw: vendor="X.Org Foundation"
[  1567.576] 	compiled for 1.17.1, module version = 0.0.2
[  1567.580] 	ABI class: X.Org Video Driver, version 19.0
[  1567.591] (**) FBDEV(0): claimed PCI slot 0@0:18:0
[  1567.599] (II) FBDEV(0): using default device
[  1567.607] (==) FBDEV(0): Depth 24, (==) framebuffer bpp 32
[  1567.611] (==) FBDEV(0): RGB weight 888
[  1567.613] (==) FBDEV(0): Default visual is TrueColor
[  1567.619] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[  1567.622] (II) FBDEV(0): hardware: VESA VGA (video memory: 8192kB)
[  1567.625] (II) FBDEV(0): checking modes against framebuffer device...
[  1567.628] (II) FBDEV(0): checking modes against monitor...
[  1567.631] (--) FBDEV(0): Virtual size is 800x600 (pitch 800)
[  1567.637] (**) FBDEV(0):  Built-in mode "current": 48.0 MHz, 46.9 kHz, 75.1 Hz
[  1567.644] (II) FBDEV(0): Modeline "current"x0.0   48.00  800<PHONE_NUMBER>  600 604 608 624 -hsync -vsync -csync (46.9 kHz b)
[  1567.649] (==) FBDEV(0): DPI set to (96, 96)
[  1567.651] (II) Loading sub module "fb"
[  1567.653] (II) LoadModule: "fb"
[  1567.813] (II) Loading /usr/lib/xorg/modules/libfb.so
[  1568.323] (II) Module fb: vendor="X.Org Foundation"
[  1568.326] 	compiled for 1.17.1, module version = 1.0.0
[  1568.328] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  1568.331] (**) FBDEV(0): using shadow framebuffer
[  1568.335] (II) Loading sub module "shadow"
[  1568.338] (II) LoadModule: "shadow"
[  1568.480] (II) Loading /usr/lib/xorg/modules/libshadow.so
[  1568.628] (II) Module shadow: vendor="X.Org Foundation"
[  1568.634] 	compiled for 1.17.1, module version = 1.1.0
[  1568.636] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  1568.639] (==) Depth 24 pixmap format is 32 bpp
[  1568.651] (EE) FBDEV(0): FBIOBLANK: Invalid argument
[  1568.774] (==) FBDEV(0): Backing store enabled
[  1568.843] (==) FBDEV(0): DPMS enabled
[  1568.860] (==) RandR enabled
[  1572.702] (II) AIGLX: Screen 0 is not DRI2 capable
[  1572.708] (EE) AIGLX: reverting to software rendering
[  1596.285] (II) AIGLX: Loaded and initialized swrast
[  1596.287] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[  1604.800] (EE)
Fatal server error:
[  1604.806] (EE) could not open default font 'fixed'(EE)
[  1604.818] (EE)
Please consult the The X.Org Foundation support
	 at http://wiki.x.org
 for help.
[  1604.829] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[  1604.835] (EE)
[  1605.980] (EE) Server terminated with error (1). Closing log file.

Thanks for the report.
It seems to be a problem with the font file, /usr/share/fonts/misc/6x13-ISO8859-1.pcf.gz. It's double-gzipped in the VM, I'll see how to fix this.

It's a bug in Chromium: https://code.google.com/p/chromium/issues/detail?id=268085
I fixed it by disabling gzipping of already gzipped files on the server, which is a good idea anyway.


📝 Made Project  Open Source Compatible

Description 📋
This PR adds comprehensive documentation and necessary templates to make the project fully open-source compatible. It includes essential files and guidelines to facilitate community contributions and maintain project quality.
Changes Made 🔍

📚 Added comprehensive README.md with:

Detailed usage instructions
Customization options
Contributors section
Feature overview
Support information

📜 Added essential project documents:

Code of Conduct (CODE_OF_CONDUCT.md)
Contributing Guidelines (CONTRIBUTING.md)
MIT License (LICENSE)
Security Policy (SECURITY.md)
Issue Templates (.github/ISSUE_TEMPLATE/)
Pull Request Template (.github/PULL_REQUEST_TEMPLATE.md)

Documentation Updates 📖

Added detailed installation instructions
Included examples for basic and advanced usage
Added customization options with color examples
Updated contributors section with proper credits
Added badges for project status

Templates Added 📋

Issue Templates:

Bug report template
Feature request template
Documentation improvement template

PR Template:

Structured format for describing changes
Checklist for PR requirements
Testing instructions

Checklist ✅

[x] Documentation is clear and comprehensive
[x] All templates follow community best practices
[x] Code of Conduct follows Contributor Covenant
[x] Security policy includes proper reporting guidelines
[x] License terms are clearly defined
[x] Contributing guidelines are thorough and clear
[x] Templates are properly formatted and easy to use

Related Issues 🔗
Closes #5

Also resolve merge conflicts


[FEATURE REQUEST] Add folder picker option like WeTransfer

Is your feature request related to a problem? Please describe.
Can't upload folders, I assume it's not yet supported?
Describe the solution you'd like
See below
Additional context
See below

Hi team, great piece of software btw! 🫡🙌

I have a feature request please:
It's to do with uploading Whole Folders.
As you can see in the screenshots, it appears to be possible with Chibisafe if you drag-and-drop the folder into the web interface (but nothing actually gets uploaded).
But the problem with this is there are some people who just would not inherently know how to do this 😒
WeTransfer makes it very easy by having a separate button Or select a folder (in the 2nd screenshot) which lets the user 🥁 select_a_folder 😲. The folder-picker-popup then allows the user to double-click into folders, and when they've chosen the one they keep that one selected and then select Upload on the folder-picker-popup.
I'm happy to give some UI suggestions to make space for the Select a folder button?

I think this might help:
https://developer.mozilla.org/en-US/docs/Web/API/Window/showDirectoryPicker
I also asked ChatGTP and it said this:
To implement a folder picker functionality on your website, you would need to use the HTML  element with the directory attribute. However, it's important to note that the directory picker feature is currently only supported in certain browsers like Chrome and Edge, and its behavior may vary across different operating systems.
Here's how you can create a folder picker input in HTML:
<input type="file" id="folderPicker" webkitdirectory directory multiple>

I'd appreciate it if you could give me a rough estimation of when it might be likely this feature will be added in if you choose to do so, or an explanation of why it won't be added,
Please let me know if there is a more formal way to request features or if there is any other info you'd need from me.
Thanks in advance 🤗

Chibisafe- Drag-and-drop folder into Web UI (doesn't upload folder)

Chibisafe- Folder shows but doesn't proceed to upload, no progress is ever shown

WeTransfer - Folder-picker-popup

Decided against a separate link/button for this.
Simply drag'n'drop a folder though should now work as expected 👍

Devs that actually listen 💯 👌 Noel for president 2024!
Thanks so much mate, that was really quick, I'll check it out
Btw I am using Docker compose, is there a way for me to deploy the feat/drag-drop-folder branch?
I don't really want to have to faff around with creating a custom Docker image so am happy to wait till the feature is in the main branch that I can deploy with chibisafe/chibisafe:latest
I know for Android we can use jitpack.io to create a build of a custom branch to include in the project as a gradle library dependency, maybe something like that exists for Docker...

Devs that actually listen 💯 👌 Noel for president 2024! Thanks so much mate, that was really quick, I'll check it out
Btw I am using Docker compose, is there a way for me to deploy the feat/drag-drop-folder branch? I don't really want to have to faff around with creating a custom Docker image so am happy to wait till the feature is in the main branch that I can deploy with chibisafe/chibisafe:latest I know for Android we can use jitpack.io to create a build of a custom branch to include in the project as a gradle library dependency, maybe something like that exists for Docker...

Sorry that's on me, closed this issue without merging the feature.
I'll merge it now but won't create a new deployment yet, so what you could do instead is build the image yourself with 1 command. For that, edit your docker-compose.yml and remmove the image property and instead add a build property, kinda like follows:
services:
  chibisafe:
    #image: ghcr.io/chibisafe/chibisafe:latest
    build:
      context: ./
      dockerfile: ./Dockerfile
    volumes:
	...

So if you pull from master and run sudo docker compose up --build -d you will have the latest version from the repo.
Either that or wait for a new release but that might not happen for a few days


Configurable Logging

There are various locations where log.Printf I used to log errors, warnings and info messages. Since certmagic is used as a library one should be able to provide a custom logging interface if the logging to Stderr is not desired.
Similar to the already existing OnEvent(string, interface{}) callback I would propose the addition of the OnError(error) and OnInfo(string) callbacks. The default interface would log the errors to Stderr and info messages to Stdout.
I'm happy to put together a pull request once we agree on the final interface. 🚀

Interface:
type Logger interface { 	Printf(format string, v ...interface{}) }

`
type Logger interface {
Printf(format string, v ...interface{})
}
var ErrLog Logger = log.New(os.Stderr,"[ERROR]",log.LstdFlags)
var InfoLog Logger = log.New(os.Stdout,"[INFO]",log.LstdFlags)
var WarnLog Logger = log.New(os.Stdout,"[WARNING]",log.LstdFlags)
`

type Logger interface {
	Printf(format string, v ...interface{})
}

var ErrLog Logger = log.New(os.Stderr,"[ERROR]",log.LstdFlags)
var InfoLog Logger = log.New(os.Stdout,"[INFO]",log.LstdFlags)
var WarnLog Logger = log.New(os.Stdout,"[WARNING]",log.LstdFlags)

This would be added to logging.go. All log.printf statements would be changed like this
log.Printf("[INFO][%s] Lock for '%s' is stale; removing then retrying: %s",
				fs, key, filename)

Will be changed to
InfoLog.Printf("[%s] Lock for '%s' is stale; removing then retrying: %s",
				fs, key, filename)

Same for error and warning logs.
Can i go ahead and make these changes?

Actually, since Caddy 2 uses zap for logging, I'd like CertMagic to be able to use that as well. If we're going to change how CertMagic does logging, let's use *zap.Logger so it's more compatible with Caddy 2 logs.

@mholt First of all, thanks for certmagic, it's a great project.
Would you be open to a logger interface so that users of other logging systems (we happen to use zerolog) can use their existing loggers? I'm super flexible as to what the interface actually looks like, and happy to take a stab at implementing it if you think this would be workable.

@desimone Hmm, as long as the interface preserves the zero-allocation benefits (as much as possible) and allows us to use zap logs flexibly, I'd be down for that, sure. I was going to spend more time on logging when I work on #71 which will probably use the same interface.
Honestly I was thinking of just using zap directly. It's virtually the same as zerolog in terms of benefits. It would be a lot simpler. Will that not be acceptable?

After digging in a bit more in how zap works, that might actually work just
fine. Let me know how I can help.
On Mon, May 4, 2020 at 10:06 PM Matt Holt<EMAIL_ADDRESS>wrote:

@desimone https://github.com/desimone Hmm, as long as the interface
preserves the zero-allocation benefits (as much as possible) and allows us
to use zap logs flexibly, I'd be down for that, sure. I was going to spend
more time on logging when I work on #71
https://github.com/caddyserver/certmagic/issues/71 which will probably
use the same interface.
Honestly I was thinking of just using zap directly. It's virtually the
same as zerolog in terms of benefits. It would be a lot simpler. Will that
not be acceptable?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/caddyserver/certmagic/issues/19#issuecomment-623858341,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AALZFMMZJ3CAAKSDSM6ZJ7TRP6NE5ANCNFSM4GSTXIFQ
.

@desimone Did you have an interface in mind that would work with both and preserve the zero-alloc benefits? If so, what do you propose?
Otherwise, I'll be getting around to upgrading this library sooner or later -- I have a lot of catch-up to from the Caddy 2 release.

This is almost done, I'm just using zap loggers in the structs. Logging is optional, and if you set the loggers, that will enable logging. Pretty straightforward.


GzipCompressor possible resource leaks

Hey, you are not using the try-catch correctly in the compress and decompress method. You should close the streams in a finally block, so they are closed even if there is an exception raised. The stream null check is not required for the compress method.
Example of a correct decompress method for the GzipCompressor class (the gzipInputStream != null should not happen, but theoretically new byte[2048] can throw an OutOfMemoryException before the gzipInputStream instance is created):
    @Override
    public byte[] decompress(byte[] compressed) {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        GZIPInputStream gzipInputStream = null;
        try {
            int len;
            byte[] buffer = new byte[2048];
            gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressed));

            while ((len = gzipInputStream.read(buffer)) > 0) {
                bos.write(buffer, 0, len);
            }

            return bos.toByteArray();
        } catch (Exception e) {
            throw new IllegalStateException("could not decompress gzip", e);
        } finally {
            try {
                bos.close();
            } catch (IOException ignore) { }

            if (gzipInputStream != null) {
                try {
                    gzipInputStream.close();
                } catch (IOException ignore) { }
            }
        }
    }

I would prefer try-with-resources with auto-close, but to support older Java versions and android, this should do it.

Hey Jack, thanks for the fix - will look into it.

Thanks.
There are a few more places where something is cleaned but not if an exception is raised before. For example the secure wipe stuff in the AesGcmEncryption class (here).

So most of the issues should be fixed. @JackWhite20 thanks again for pointing them out.


Don't add fallbacks if they weren't requested

Summary:
When running TensileCreateLibrary for separate archs where no logic files are present with Hip in the name, the program fails. We need to inspect the dictionary to see if fallback is a key prior to attempting to add fallback libraries.
Outcomes:
Fixes a regression that prevents TensileCreateLibrary from completing when fallback logic is not available.
Testing and Environment:
Ran pre_checkin, unit and static tests locally. Awaiting pipeline results.

Looks good. I confirmed rocblas build worked with -l option.

Many thanks!


feat: make background interval config public

Signed-off-by: andylokandy<EMAIL_ADDRESS>Closes https://github.com/tikv/minitrace-rust/issues/223

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

20 of 25 (80.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.2%) to 79.073%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
19
20
95.0%

minitrace/src/collector/mod.rs
1
5
20.0%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
1
82.08%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
1723

Relevant Lines:
2179

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

22 of 29 (75.86%)  changed or added relevant lines in 3 files are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
19
20
95.0%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
8
37.5%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
2
80.39%

minitrace/src/collector/global_collector.rs
5
94.21%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

23 of 31 (74.19%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
20
21
95.24%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
9
33.33%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
1
80.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

23 of 30 (76.67%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
20
21
95.24%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
8
37.5%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
2
80.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

23 of 30 (76.67%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
20
21
95.24%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
8
37.5%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
2
80.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

23 of 30 (76.67%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
20
21
95.24%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
8
37.5%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
2
80.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

23 of 30 (76.67%)  changed or added relevant lines in 3 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 78.957%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

minitrace/src/collector/global_collector.rs
20
21
95.24%

test-statically-disable/src/main.rs
0
1
0.0%

minitrace/src/collector/mod.rs
3
8
37.5%

Files with Coverage Reduction
New Missed Lines
%

minitrace/src/collector/mod.rs
2
80.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.3%

Covered Lines:
1711

Relevant Lines:
2167

💛  - Coveralls


WIP feat: update builtin library

Proposed Changes
Move the builtins from the models to a real library that is pre-connected with Alva.
Checklist

[x] Install Lerna
[x] Remove existing Library
[x] Add new builtin library
[x] Remove build files of builtin library
[x] Auto-Connect Essentials Library
[x] Re-connect page root element
[x] Restore Preview
[x] Update Pattern Icons

Tilman:

[x] Restore Element-List Tests
[x] Cleanup npm scripts for essentials
[ ] Add JSDoc Meta Data to builtin lib
[ ] Remove code props from Page component
[ ] Allow updating of builtins
[ ] Analyze @type jsdoc only on builtin-analysis

Mario:

[ ] Automatically analyze essentials library
[ ] Fallbacks for existing files without lib

Deployed at: https://alva-issues-690.surge.sh


docs: fix link to quick sync video processors

This fixes the search parameters in the link to the Intel Quick Sync Video processors.

Thanks.  Could you also fix the link in appdefs.yml ?

Sure!


add Yekai

add Yekai

Sorry but the website is missing a hand-crafted feel, it seems that it is only a blog using a default template in its current state. It's not a good candidate for the webring.

@neauoire
Manau, kad suprantu, ką sakote, ir tikiuosi, kad ateityje bus dar viena galimybė.


develop automation to build BSD images

*BSD images can't use the guestfs-tools, mainly due to UFS, therefore we need to write the customization of these images using an alternative tool. virt-lightning seems like an easy enough way forward thanks to all of the hard work from @goneri as well on the *BSD side and cloud-init support.

[ ] FreeBSD
[ ] NetBSD
[ ] OpenBSD
[ ] DragonFlyBSD

As per our general baseline requirements for an image, we should aim to customize the images in three main ways:

QEMU guest agent should start on boot
Ability to SSH using the service after qemu-guest-agent propagates keys
Console is available out of the box

Assuming we can automate this end-to-end, I would expect the process to look something like this:

Download/install virt-lightning
Boot a given BSD image
Install packages (can we use cloud-init to do this, or will cleaning wipe these packages out?)
Configure system
Clean system (cloud-init, hostname, networking)
Shutdown vm
Convert the image (cd /var/lib/virt-lightning/pool ; sudo qemu-img convert -O qcow2 -c openbsd-70.qcow2 openbsd-7.0-root-root.qcow2)

From here, the standard automation for packaging can kick in as if the image has been downloaded and skip customization the same way we implemented for *CoreOS. After packaging, tests will be kicked off to validate qemu-guest-agent starts on boot and ssh is available via the k8s service exposed.
Resources:
https://www.freshports.org/emulators/qemu-guest-agent
https://undeadly.org/cgi?action=article;sid=20200514073852
https://github.com/virt-lightning/virt-lightning
https://bsd-cloud-image.org
Things to keep in mind:

While testing cloud-init, we were seeing OpenBSD restarting every 1-2 minutes. This stopped after doubling the memory to 4G.
cloud-init networking should be set up slightly different than usual (requiring matching on the mac_address)
/bin/bash is not available, we should stick to the default shell

I've got a bunch of scripts to build bsd-cloud-image images. I can probably install qemu-agent in the images. This being said, you can also rely on cloud-init to inject the SSH keys too.

Hey @goneri, that would awesome! Any way to minimize the amount of customize building we have to do would be great. We could start with FreeBSD since there is a maintained port (https://github.com/aborche/qemu-guest-agent) that I am aware of.

This being said, you can also rely on cloud-init to inject the SSH keys too.
Yes, we can take advantage of cloud-init for static ssh key inject and qemu-guest-agent providing dynamic SSH key injection.

https://kubevirt.io/user-guide/virtual_machines/accessing_virtual_machines/#dynamic-ssh-key-injection-via-qemu-user-agent

Adding use case explanation to the value of qemu-guest-agent.
We leverage kubernetes secrets to supply user details and credentials such as username, password (if required), and ssh-keys. This provides a predictable user/administration model where the user creates an ssh key secret for any given deployment, and that secret is used to propagate the ssh key dynamically to the subscribed instances even as the instance count may scale up/down.
One feature that is convenient for this is the ability to dynamically rotate and or even add additional ssh pub keys to all subscribed instances by just updating the kubernetes credentials secret data.
This workflow is why we attempt to leverage qemu-guest-agent when ever possible as the first-class experience, and then fall back from there to direct user-data injected ssh keys only for distributions or bugs that prevent this experience.
TLDR, prefer to use qemu-guest-agent for dynamic long lived control over ssh keys in subscribed kubevirt instances, we are also able to use cloud-init as a fallback option when required and can maintain documentation to cover these edges as needed.

FreeBSD has been implemented with the ssh test disabled for now.


How to save and load the best prompt?

Hi,
Thank you for developing this really nice tool. I'm having trouble saving and loading the best prompt of the optimizer.
To save it, I was doing:
with open("best_prompt.json", "w") as f:
    json.dump(prompt_optimizer.best_prompt.to_json(), f)

And then to load it:
with open("best_prompt.json", "w") as f:
   best_prompt = Output.from_json(json.load(f))

But this raises TypeError: Object.from_json() got an unexpected keyword argument '_type'. I tried dropping the '_type' key from the dict but that raises another error. Thank you in advance for your help.

Hi,
the json loading isn't even implemented at the moment -- only json saving. I would instead use the save() and load() method of the optimizer, or write your own serialization function like here: https://github.com/microsoft/sammo/blob/7ad76482f5776ed83f608f39ef9be4b96cab8329/sammo/search.py#L104-L114


feat request: Allow custom client path

I'm currently using two different database clients that live in a different directory from @prisma/lcient as a workaround to support multiple databases as mentioned here:
https://github.com/prisma/prisma/issues/2443#issuecomment-1110434344
I'd like to be able to do something like this
    const prismacli1 = new PrismaClient1();
    const prismacli2 = new PrismaClient2();

    prismacli1.$use(fieldEncryptionMiddleware());
    prismacli2.$use(fieldEncryptionMiddleware());

But is looks like the middleware explicitly injects into @prisma/client
Error: Cannot find module '@prisma/client'
Require stack:
- /Users/jangu/Development/bitrebel/bitrebel.io/api/node_modules/prisma-field-encryption/dist/dmmf.js
- /Users/jangu/Development/bitrebel/bitrebel.io/api/node_modules/prisma-field-encryption/dist/index.js
- /Users/jangu/Development/bitrebel/bitrebel.io/api/src/plugins/brapp.ts
- /Users/jangu/Development/bitrebel/bitrebel.io/api/src/index.ts
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/jangu/Development/bitrebel/bitrebel.io/api/node_modules/prisma-field-encryption/dist/dmmf.js:4:18)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Module._compile (/Users/jangu/Development/bitrebel/bitrebel.io/api/node_modules/source-map-support/source-map-support.js:568:25)
    at Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Object.nodeDevHook [as .js] (/Users/jangu/Development/bitrebel/bitrebel.io/api/node_modules/ts-node-dev/lib/hook.js:63:13)
    at Module.load (node:internal/modules/cjs/loader:981:32)

It would be nice to be able to pass in an option to specify the location of my prisma clients 👍

That could be a nice improvement indeed.
Would you like to open a PR?

You might be able to get to it faster than I could. I'm a bit stacked at the moment to implement the fix for it but from a glance at the source, here are my thoughts.
So ideally the user wants to pass the path of the client to the configuration and let the middleware use the DMMF from the supplied client.
I thought about allowing the path of the client in the config input and then dynamically loading the Prisma instance from there
src/types.ts - l14
export interface Configuration {
  encryptionKey?: string
  decryptionKeys?: string[]
  clientPath?: string
}

src/index.ts - l12
  let models: DMMFModels
  ;(async function () {
    if (config.clientPath) {
      const { Prisma } = await import(config.clientPath) // problem: this is untyped
      models = analyseDMMF(Prisma.dmmf)
    } else {
      models = analyseDMMF()
    }
  })()

Unfortunately, there are a few spots where this might be challenging though since you're sourcing the DMMF from the @prisma/client directory, particularly in the types and errors file. You'll need a clean way to source types from the custom client instead.
Also, this may not work clean without async/await because of the dynamic import.
I thought about maybe using module augmentation to extend DMMF types, but it wouldn't work with multiple clients.

You might be able to get to it faster than I could. I'm a bit stacked at the moment to implement the fix for it but from a glance at the source, here are my thoughts.

Unfortunately I don't have a lot of free time to dedicate to this project at the moment.

So ideally the user wants to pass the path of the client to the configuration and let the middleware use the DMMF from the supplied client.

That seems like the right option indeed.
Just so we're clear on your setup, are you using the same Prisma schema with two different client output locations, or are we talking about two different Prisma schemas (and associated clients) ?

Unfortunately, there are a few spots where this might be challenging though since you're sourcing the DMMF from the @prisma/client directory, particularly in the types and errors file. You'll need a clean way to source types from the custom client instead.

Indeed, and it's not just about runtime code (where your fix could work), we're also relying on Prisma's generated TypeScript types for the DMMF. Though this could be something where generics could help, it would require more boilerplate in the default case (when using the default client located under @prisma/client) to pass it the right types and runtime objects.

Just so we're clear on your setup, are you using the same Prisma schema with two different client output locations, or are we talking about two different Prisma schemas (and associated clients) ?

I'm using two different clients that use two different schemas.
To be honest, implementing this feature without rearchitecting the whole library might not be feasible or even worth it. If Prisma somehow adds native support for for multiple databases that generates the stubs in @prisma/client, then you might have to refactor it again.
Thanks for your feedback though

@jackvane @synyster-jack @pwdevbcf: I have released v1.4.0-beta.1 which adds support for custom/multiple Prisma clients, could you give it a try and tell me if it solves your respective use-cases please?
You'll need to pass the DMMF to the middleware rather than the path to where to find it:
  import { fieldEncryptionMiddleware } from 'prisma-field-encryption'
+ import { Prisma } from '../my/prisma/client/location'

  prismaClient.$use(
    fieldEncryptionMiddleware({
+    dmmf: Prisma.dmmf
    })
  )

Passing the DMMF directly opens up a lot of future possibilities in manipulating it at runtime, as opposed to a simple import path.

@franky47   thanks! This is working, there is only thing related to types, dmmf need only datamodel property, but dmmf from Prisma namespace has more than only datamodel, but this is not that big issue.

Does it give you a TypeScript error? My integration code seems to be OK with passing a fully fledged DMMF from Prisma to the internal DMMFDocument type that only declares what it uses.

(property) Configuration.dmmf?: {
    datamodel: {
        models: {
            name: string;
            fields: {
                name: string;
                isList: boolean;
                isUnique: boolean;
                isId: boolean;
                type: string;
                documentation?: string;
            }[];
        }[];
    };
}
Type 'Document' is not assignable to type '{ datamodel: { models: { name: string; fields: { name: string; isList: boolean; isUnique: boolean; isId: boolean; type: string; documentation?: string; }[]; }[]; }; }'.
  The types of 'datamodel.models' are incompatible between these types.
    Type 'Model[]' is not assignable to type '{ name: string; fields: { name: string; isList: boolean; isUnique: boolean; isId: boolean; type: string; documentation?: string; }[]; }[]'.
      Type 'Model' is not assignable to type '{ name: string; fields: { name: string; isList: boolean; isUnique: boolean; isId: boolean; type: string; documentation?: string; }[]; }'.
        Types of property 'fields' are incompatible.
          Type 'Field[]' is not assignable to type '{ name: string; isList: boolean; isUnique: boolean; isId: boolean; type: string; documentation?: string; }[]'.
            Type 'Field' is not assignable to type '{ name: string; isList: boolean; isUnique: boolean; isId: boolean; type: string; documentation?: string; }'.
              Types of property 'type' are incompatible.
                Type 'string | SchemaEnum | OutputType | SchemaArg' is not assignable to type 'string'.
                  Type 'SchemaEnum' is not assignable to type 'string'.ts(2322)

Can you share your TypeScript configuration (tsconfig.json), and what type of database are you using with this Prisma client?

Yep. tsconfig looks like:
{
   "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "ES2020",
    "noImplicitAny": false,
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "sourceMap": true,
    "outDir": "dist",
    "baseUrl": ".",
    "noEmit": false,
    "skipLibCheck": true
  },
  "ts-node": {
    "files": true
  },
  "exclude": ["test", "jest.config.js"],
}

and DB is PostgreSQL and "@prisma/client": "^3.8.0"

there is the same issue. I am not able to share schema - sorry. But thank you for the fast release! It helped me a lot

@jackvane @synyster-jack @pwdevbcf You may have noticed that Prisma released v4.0 last week, which includes a breaking change in their internals (the way we access the DMMF, which was not covered by semver anyway).
I'm thinking of releasing this feature (tracked in PR #20) with a peer dependency requirement on v4, in an upcoming major upgrade. Because the package where the DMMF lives has changed names, it would be hard to provide compatibility for both Prisma 3 and Prisma 4 in a single version.
This is how we'd go about accessing the DMMF, in the case of a default client location:
import { getDmmf } from '@prisma/internals'
import { fieldEncryptionMiddleware } from 'prisma-field-encryption'

prismaClient.$use(
  fieldEncryptionMiddleware({ dmmf: getDmmf() })
)

Now I don't know how this may translate to custom client locations, and how/if Prisma has had this use-case in mind in their package rearchitecturing. Are any of you planning to migrate (or already have) to Prisma 4?

I have already migrated over to Prisma v4 so a peer dependency on it in a future release is fine with me.

How does it work to access the DMMF of a custom client then on v4?

This helped me a lot, confirm it works with Prisma 4.2.1.

Closing as implemented in 1.4.0 (for some reason the auto-close tag didn't pick this one up).


Linter fixes

Changes

brings linter warnings back below 100.

Testing

gulp lint should have no errors.

Review

@jimmynotjim
@sebworks
@KimberlyMunoz

:+1:


Updated log4j version

This change is

Hi @kowalczyka and @GoebelL ,
can we delete this pr? I guess this should be done within the "Update log4j" task, right?

Yes, it can be deleted


init decode code.

Caution: the code can not be run now because of issue https://github.com/k2-fsa/snowfall/issues/31#issuecomment-738570169, we are still debugging it, just commit it now so that other guys can work on it together.

@danpovey you may need to run pip install editdistance to install dependency editdistance.

OK cool.  Did you ever get an example of a pair of word symbols that were on the same determinized arc?

.. wonder if it might have been that previous problem with the EOS symbol.

OK cool. Did you ever get an example of a pair of word symbols that were on the same determinized arc?

Sorry, I have not debugged into it, if it's urgent, I'll do tomorrow.

Thanks, Piotr!   If you're familiar with the editdistance package let us
know what the differences are.
Haowen: not urgent.
On Mon, Dec 7, 2020 at 9:41 PM Haowen Qiu<EMAIL_ADDRESS>wrote:

OK cool. Did you ever get an example of a pair of word symbols that were
on the same determinized arc?
Sorry, I have not debugged into it, if it's urgent, I'll do tomorrow.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/k2-fsa/snowfall/pull/34#issuecomment-739925216, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZFLO7MS6RKLSDSEWQHVVLSTTLQZANCNFSM4UQOIZIQ
.

I applied the suggestions from the discussion here in #35, we can close this if we merge the other one.


1.6 patch

@gavinr @shawnmgoulet
This PR provides a patch for the jimu-icons, unit tests and download issues. Please help review.


[Consultation] Getting Tenant for ClientCredentialFlow

Hi colleagues,
we are currently using ClientCredentialFlow  and in the case of multitenant applications we are setting the respective tenant from the JWT access token in the following way:
tokenFlows.clientCredentialsTokenFlow().subdomain(((XsuaaToken)at).getSubdomain());
We are using tenant information also in other parts of our app, where we get it via
SecurityContext.getAccessToken().getZoneId();
Where would we get this tenant information from, if we have a job-style application where there is no JWT token available in the request? Would it be valid to use the property identityzoneid from the env variables of the respective XSUAA instance? What is the difference to tenantid?
BR Simon

Hello Simon,
if you have parts in your application that cannot access the SecurityContext, you have to provide the information yourself. If it is just a child thread that needs to access this information you could create your own InheritableThreadLocale to propagate the required information. But in general this really depends on your application.
Regarding your other question I think they can be answered by XSUAA colleagues. Do you have an D/C/I-User? If yes I can point you to internal resources for that!
Best Regards
Daniel

Hi Daniel,
thanks for the response, I will contact you via mail.


Add -> product discount import option.

@hajoeichler @emmenko so should I merge this branch and create an issue to refactor it?

I would also like to see an integration test.

@hajoeichler if u mean a feature test,
then I tried making one... but it was difficult to set up the requirements, such as a product should be existing before the feature test runs.
Also I could not figure out, how to do a before and after for the tests.
If u mean integration tests.. then I think they should be in the product-discount-module not in the cli.

Yeah, integration tests should be done at least in the library itself. Here would be good to have some features. To do the setup we could potentially do it with a script before running the feature.


RFC: Retire PDDE OOO Calendar in favour of Bamboo

Proposal:
It's possible to get an iCal feed of people's time off directly from Bamboo. We should therefore retire the PDDE OOO calendar.
Reasoning
If everybody uses the Bamboo calendars to show "Who's Out", we no longer need the PDDE OOO calendar. This will remove one step in the process of taking time off.
Exceptions:
None
Additional Context:
To create a new iCal feed:

Click on Full calendar on Bamboo (you need to mouse over the Who's Out sidebar to see the link)

Select iCal Feeds... from the dropdown in the calendar view

Copy the link for the Who's Out calendar

How is this RFC resolved?
We delete the PDDE OOO calendar.

+1 ! This will be a great incentive to use Bamboo more. Also, being more diligent about tracking time off will help us support risk of burnout as we can identify more easily people who haven't taken any break or been able to recharge for too long.

Nice! Excited to consolidate.
Couple of thoughts/questions:

It looks like this will pull in the Artsy-wide OOO calendar (vs. just scoped to PDDE). That could get a little noisy, which I think is why we added the PDDE-specific originally. Is it possible for us to get a feed of just PDDE? (Maybe a question for people ops)
Would be worth including these calendar setup instructions somewhere... (struggling to think of the best place at the moment).
Let's make sure to share this with all of PDDE as it'll affect non-E teams as well.

It looks like this will pull in the Artsy-wide OOO calendar (vs. just scoped to PDDE). That could get a little noisy, which I think is why we added the PDDE-specific originally. Is it possible for us to get a feed of just PDDE? (Maybe a question for people ops)

Oh, that's interesting - when I did it, I just got PDDE. Maybe it depends on whether you have a filter set in the calendar view?
I'm actually also a little confused about whether these iCal feeds are directly related to a particular user. It seems like you can just keep regenerating them at will. I guess I should clarify that before we move forward.

Would we also use Bamboo to track hourly OOO time, e.g. being OOO for 2 hours for a dental appointment? I personally find it quite convenient to add blocks of OOO time to my personal calendar (and then to copy it over to the PDDE OOO one) and also to check the PDDE OOO cal when I'm looking to schedule a meeting with someone. This now introduces an additional step of logging into yet another workflow (Lattice, Greenhouse, EverFi, Looker, now Bamboo, et. al)

That's a good point @ashleyjelks. I don't think you can get more granular than a day in Bamboo. But I'm also not sure whether it's necessary to add dental appointments to a global calendar - if I want to set up a meeting with you, I'll check your calendar to see when you're free; as long as you have your dental appointment on your own calendar, that should be fine. Does that sound reasonable?

@admbtlr definitely!

I was able to select "My Circle" from the calendar drop-down between steps 1 and 2 to generate a more tailored calendar feed:

Oh awesome!! That alleviates my concerns-- we should make sure to call that out in the relevant playbook.

Hey @admbtlr I'm not able to get to this Full Calendar view - is it possible only EMs see this? 🤔

If permissions are limited, maybe one person with the necessary access can generate a feed for all PDDE time off and share it broadly? (And if that works, maybe another scoped to engineering?)

Yes, that makes sense @joeyAghion , and I'm happy to be that person if necessary. But @jonallured did you hover with your mouse over the Who's out section? For some reason, the Full Calendar link only appears when you hover.

I can't actually see that view to see all calendars & create a feed - might it only be visible to managers? I am looking on the Home screen.

For the resolution of this, could we also get rid of https://artsy.slack.com/archives/CA3LN4SP7/p1621861205000100 and replace these with the bamboo cal?

This has been here for a while now because there have been a couple of open questions:

Not everyone can see the "Who's Out" calendar in Bamboo
I talked to People Ops and they were unsure whether/why this is the case. I propose that we just take an individual who can see it, have them create a calendar and then share the link. I'm happy to be that individual, unless anyone has a better idea.

It looks like the calendar doesn't get updated properly
I turns out that this happens if you regenerate a link to the calendar - in that situation, the original calendar link stops updating. The solution is to not regenerate the link.

I will bring this up in today's engineering standup, but I think that we should adopt this and move forward with a named individual's calendar.

Closing this, pending a session with @jasonarias to finesse the details.


Sidebar revamp

Motivation
Make the sidebar look cleaner (less Chrome, more whitespace). I feel that this is nicer and closer to the other documentation sites. Sites that I referenced:

https://redux.js.org
https://vuejs.org
http://docs.vulcanjs.org
http://graphql.org/learn/

I plan to clean up the CSS and overall theme in subsequent PRs.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Before

After

Mobile

Related PRs
NA.

Beautiful!


Make kind provisioner a bit more robust

Please provide a description of this PR:

/test all

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all


FURB118 is incorrector for operator.contains. The operands are reversed!

There is a bug in the fixit for the FURB118
f = lambda a, b: a in b

gets replaced with
f = operator.contains

but this is NOT semantically equivalent. Per the documentation, operator.contains is equivalent to b in a not a in b!
f = lambda a, b: b in a

is actually equivalent to operator.contains not what is actually getting flagged (or fixed) by refurb.
This is appearing when trying to apply this fix with ruff master.

Thanks!

Fixing now :)


Slower Elasticsearch on .Net Core

NEST/Elasticsearch.Net version:
5.4.0
Elasticsearch version:
5.2.2
Description of the problem including expected versus actual behavior:
We just updated to .Net core 1.1.1 in production. We run our servers in Debian 8.
Our ElasticClient is a singleton for our application. We notice an increase of +120% of the time it takes for the same queries we used to have on .NET Framework 4.5.
For our application, we build a raw elasticsearch string, and we query it like so :
public IEnumerable<T> RawQuery(string query, int limit, params string[] fields)
{
    var client = ElasticsearchConnectionPool.Current.GetClient(_clusterName);
    try
    {
        ISearchResponse<T> result;
        if (fields != null && fields.Any())
        {
            result = client.Search<T>(n => n
                .Index(_index)
                .Size(limit)
                .Source(s => s.Includes(f => f.Fields(fields)))
                .Query(q => q.Bool(f => f.Filter(t => t.Raw(query)))));
        }
        else
        {
            result = client.Search<T>(n => n
                .Index(_index)
                .Size(limit)
                .Query(q => q.Bool(f => f.Filter(t => t.Raw(query)))));
        }

        if (Logger.Current.IsDebugEnabled)
        {
            Log.Debug("ElasticsearchContext.Query", "Debug info", result.DebugInformation);
        }

        if (result.ApiCall.Success)
        {
            return result.Hits.Where(hit => hit.Source != null).Select(hit =>
            {
                hit.Source.Id = Extensions.Deserialize<TIndex>(hit.Id);
                return hit.Source;
            });
        }
        else
        {
            Log.Error("ElasticSearch", "Query failed when api was called", query, result.ApiCall.ToString());
            return Enumerable.Empty<T>();
        }
    }
    finally
    {
        ElasticsearchConnectionPool.Current.ReleaseClient(_clusterName, client);
    }
}

It seems that when our servers are running on windows, the performance is better.
If it helps, we noticed this stacktrace popping from time to time :
May 23 12:49:49:       ERROR [Elasticsearch.Net.ElasticsearchClientException: Maximum timeout reached while retrying request ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. May 23 12:49:49:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) May 23 12:49:49:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) May 23 12:49:49:    at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext() May 23 12:49:49: --- End of stack trace from previous location where exception was thrown --- May 23 12:49:49:    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() May 23 12:49:49:    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) May 23 12:49:49:    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) May 23 12:49:49:    at Elasticsearch.Net.HttpConnection.Request[TReturn](RequestData requestData) in c:\Projects\elastic\net-5\src\Elasticsearch.Net\Connection\HttpConnection-CoreFx.cs:line 70 May 23 12:49:49:    --- End of inner exception stack trace --- May 23 12:49:49:    at Elasticsearch.Net.RequestPipeline.BadResponse[TReturn](ElasticsearchResponse1& response, RequestData data, List1 pipelineExceptions) in c:\Projects\elastic\net-5\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 501 May 23 12:49:49:    at Elasticsearch.Net.Transport1.Request[TReturn](HttpMethod method, String path, PostData1 data, IRequestParameters requestParameters) in c:\Projects\elastic\net-5\src\Elasticsearch.Net\Transport\Transport.cs:line 104 May 23 12:49:49:    at Nest.LowLevelDispatch.SearchDispatch[T](IRequest1 p, PostData1 body) in c:\Projects\elastic\net-5\src\Nest\_Generated\_LowLevelDispatch.generated.cs:line 2847 May 23 12:49:49:    at Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch[TRequest,TQueryString,TResponse](TRequest request, Func3 responseGenerator, Func3 dispatch) in c:\Projects\elastic\net-5\src\Nest\ElasticClient.cs:line 57 May 23 12:49:49:    at AntVoice.Common.DataAccess.ElasticsearchClient.ElasticsearchContext2.RawQuery(String query, Int32 limit, String[] fields)`
Steps to reproduce:

Run a server on linux
See the increase of timings for the same queries

Provide ConnectionSettings (if relevant):
var pool = new StaticConnectionPool(new Uri("http://elastic01-prod:9200));
_client = new ElasticClient(new ConnectionSettings(pool).ThrowExceptions());

+1

Thanks for reporting this, we will dive in to investigate.

apologies for the necrobump, did anything ever come of this? I believe we are experiencing the same, via docker on debian.

@almanzharoz your issue could be explained by a difference between cold startup time between corefx and the desktop CLR. A deserialization should take nowhere near >1ms let alone 100+.
class Program
{
	static void Main(string[] args)
	{
		Console.WriteLine("Hello World!");
		var client = new ElasticClient();
		var sw = new Stopwatch();
		sw.Start();
		Deserialize(client);
		sw.Stop();
		Console.WriteLine($"Cold time: {sw.Elapsed}");
		sw.Reset();

		const int it = 100_000;
		sw.Start();
		for (var i = 0; i < it; i++)
		{
			Deserialize(client);
		}
		Console.WriteLine($"Total time: {sw.Elapsed}");
		var average = (long)Math.Round((double)sw.Elapsed.Ticks / it, MidpointRounding.AwayFromZero);
		Console.WriteLine($"Average time over {it} iterations: {TimeSpan.FromTicks(average):mm\\.ss\\.fffffff}");
	}

	private static void Deserialize(IElasticClient client)
	{
		var sd = new SearchDescriptor<object>().Type(Types.Parse("project"))
			.Query(q => q
				.Bool(b => b
					.Filter(Query<object>.Ids(z => z.Values("AVx9SuIapC_PV5uTcKSj"))
				)
			)
		);
		var bytes = client.RequestResponseSerializer.SerializeToBytes(sd);
	}
}

.NET 4.5
Hello World!
Cold time: 00:00:00.4236862
Total time: 00:00:02.6523886
Average time over 100000 iterations: 00.00.0000265

.NET Core (netcoreapp2)
"C:\Program Files\dotnet\dotnet.exe" C:/Projects/elastic/net-master/src/ScratchPad/bin/Release/netcoreapp2.0/ScratchPad.dll
Hello World!
Cold time: 00:00:00.4155492
Total time: 00:00:02.7471412
Average time over 100000 iterations: 00.00.0000275

As can be seen startup/cold time is substantial as both NEST and JSON.NET do some reflection and caching, subsequent invocations should be a hell of a lot faster in the realm of >1ms.

@testos944 @neeasade HTTP on core is definitely slower and I am still trying to get to the bottom of this.
I investigated TCP reuse and could reliably show that on .NET core the connections were not reused as they were on .NET 4.x and up. This relates to the CurlHandler which .NET core ends up using where it can not use the default WebRequestHandler. I opened an issue on the corefx repos some time ago that is still open: https://github.com/dotnet/corefx/issues/21227
We try to mitigate this by shipping with a lower concurrency if we see that the platform the client runs under uses the CurlHandler.
Another possible reason is that this CurlHandler does not use HTTP pipelining: https://github.com/dotnet/corefx/issues/14612#issuecomment-309466811.
A fully managed cross platform handler for HttpClient is in the works but nothing has shipped yet.
Another aspect is that on .NET 4.x we use a WebRequest powered IConnection, on .net core we use an HttpClient powered IConnection. While we hope to converge to a single HttpClient implementation in the future, we need to build evidence its on par with the netfx version.

Have you seen the changes that they have made to HttpClient and the new IHttpClientFactory in .net core 2.1? Apparently they changes the handler to use the new managed sockets implementation and saw a massive performance increase.
https://blogs.msdn.microsoft.com/webdev/2018/02/28/asp-net-core-2-1-preview1-introducing-httpclient-factory/
https://github.com/dotnet/corefx/issues/23401

Yep that's the managed handler I was referring to earlier, once that ships were definitely  creating an IConnection implementation for.it :)

@Mpdreamz the new sockets implementation has now been released, is there anything we can do to get the ball rolling on the new IConnection implementation?

@Mpdreamz Any update on this?

I tried to use NEST(7.1) on Linux and it opens too many TCP connections and doesn't close them. Then, I changed the code to using IHttpClientFactory and it works like charm. But this way, I should use my own NEST library that changed from me.
Here are the results:
Before using IHttpClientFactory

After using IHttpClientFactory

HI @turgayozgur
Are you adhering the NEST lifetime requirements? https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/lifetimes.html
Can you share more about which TFM and OS you are using?
We have integration tests for connection reuse and my main workstation is linux but I am not seeing the same behaviour if ConnectionSettings is reused.
On master calling:
$ ./build.sh integrate-one 7.5.0 connectionreuse

Will kick of just these tests
Doing a 100k searches yields the following opened and total opened TCP connections. This is on netcoreapp3.0.
Current Open: 13, Total Opened: 18, Iteration Max = 616, Iteration: 99, Total Searches 100000

And netstat -a seems to agree after running as well.
If I change the test to new an client before each search the tests quickly fails due to opening too many sockets
	.Select(r => new ElasticClient(new TestConnectionSettings().ApplyDomainSettings()))
	.Select(async c => await c.SearchAsync<Project>())

   Expected value to be less or equal to 13 because CurrentOpen exceed our connection limit 12, but found 1190.

Can you share a bit more about your test setup? Test code, OS, .net sdk version, target .net core version that would be useful to investigate further.

Hi @Mpdreamz,
I have tested on ubuntu 18.04. dotnet sdk version was 2.2.401 and the core version was 2.2.
The main issue about my scenario is using a new ElasticClient for every request. It is totally understandable. The nest library trying to cache the HttpClients but when I create the new instance for every request, it can't do it. The httpclientfactory is okay but singleton usage of ElasticClient is also okay. There is no reason the change anything in the NEST library. Thank you for this information.

Thanks for confirming @turgayozgur !

Looks like this one can be closed. Performance will be a core focus area in the next major release, along with some additional transport changes/improvements.

Looks like this one can be closed. Performance will be a core focus area in the next major release, along with some additional transport changes/improvements.


feat: Refactor column handling into ColumnState

Similar to the same refactoring for RowState/RowStates, does the same for column state.

Looks much cleaner! Thanks for taking the time to comb through all of this


Update velocity-animate.d.ts for latest Velocity

@smrq thank you for your contributions!
please resolve conflict.

Whoops, forgot to comment.  Conflict resolved!

@smrq thanks mate!


Pass read pair to read

Instead of having a bothpassing method in readpair and read, assign readpair object as property to read

Unnecessary and sloppy


No convergence - Training AdderNet with Cifar10

Hi Kan,
Thank you for your brilliant work for writing AdderNet in Tensorflow.
I learned from your codes that you have trained ResNet20-V1 and achieved 92.16% accuracy in Cifar10.
I tried to train the model with the following command, but found that it did not converge at all. The training loss and accuracy at 100 epoch are same as that of the first 5 epoch, whose screenshots are attached below.
python train_addernet_cifar10.py --data_preprocessing "subtract_pixel_mean" --lr_schedule "cifar10_scheduler"  --dataset "cifar10" --use_addernet --data_preprocessing subtract_pixel_mean  --epochs 300 --batch_size 64
I would be appreciate it if you could let me know what changes I should make.
Best Regard,
Shawn
Epoch 1-5:

Epoch 100:

Hi Shawn,
Thanks for your trial on my codes. Actually, pls check the README.md, which states that this code repository has NOT been tested yet.
This also means your output results are the same as mine, which I haven't uploaded and I am still fixing on.
The reasons I guess for the model not getting convergence could be:

TensorFlow's SGDW optimizer is not the same as PyTorch's SGD with momentum;
My implementation of the Adder2D layer especially its gradient function has some bugs.

I'll try to figure out the problem when I have some time, thanks!


FCS_COP.1/PBKDF - CC Compliance

This one is close except for the specification of iterations in the text of the requriement.
Might be able to deal with this as a refinement, but there might be another way. We'll see how we deal with this in the CWG. Since this is derivation, maybe it should be handled in FCS_CKM.5?

We might want to fold this into FCS_CKM_EXT.1.

Folded in to FCS_CKM_EXT.5


Lerna

R: @jeffposnick @addyosmani

It is indeed the release process with lerna.
Was a little bit shakey but still better than manual (hence why we are at 0.0.3)

🎊 🎊 🐉


Edit and Remove Enrollments (Frontend)

Codecov Report
Attention: Patch coverage is 81.25000% with 6 lines in your changes missing coverage. Please review.

Project coverage is 61.14%. Comparing base (67f81c7) to head (fff1a2c).
Report is 2 commits behind head on master.

Files
Patch %
Lines

...are/humanaethica/config/HEPermissionEvaluator.java
0.00%
3 Missing :warning:

.../humanaethica/enrollment/EnrollmentController.java
0.00%
2 Missing :warning:

...are/humanaethica/enrollment/EnrollmentService.java
90.00%
0 Missing and 1 partial :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##             master      #92      +/-   ##
============================================
+ Coverage     60.27%   61.14%   +0.86%
- Complexity      502      529      +27
============================================
  Files            65       65
  Lines          1790     1848      +58
  Branches         68       72       +4
============================================
+ Hits           1079     1130      +51
- Misses          679      687       +8
+ Partials         32       31       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Integrate master and resubmit.


fix nix failing due to missing diir

Quick fix for failing nix-build on master.

Codecov Report

Merging #489 (a0225b3) into master (970c2e4) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #489   +/-   ##
=======================================
  Coverage   72.77%   72.77%
=======================================
  Files          83       83
  Lines       10821    10821
=======================================
  Hits         7875     7875
  Misses       2946     2946

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

It seems it was a race condition between PRs being landed. The PR where I tightened filtering of source directories passed the CI: https://github.com/fedimint/fedimint/actions/runs/2967374810 . Then https://github.com/fedimint/fedimint/pull/434/files#diff-859be839df8ded19f535fb80b4f92979adfb15aa592967c4f7f344ec4eac90d1 was landed which adds an additional dependency in fedimint to mint-client, which I just removed in my PR as unnecessary.
@jkitman @justinmoon


Expose Mash#binding for ERB

Expose Mash#binding so can be passed to ERB template result for example

Opening binding is probably not something we want in a Hashie Mash by default, but I am willing to hear other opinions. If it were to be open I think it would have to be implemented as an extension, would need tests, and CHANGELOG.

Right you are, monkey patch will suffice for me.


Incorrect error message when validating number for NaN

When validating a property that must be a number (e.g. offsetX) for NaN value, the error message will be:
Action option offsetX is expected to be a number, but it was number.
instead of expected:
Action option offsetX is expected to be a number, but it was NaN.
It's because of number() validator (here):
function number (option, val, positive) {
    var valType   = typeof val;
    var ErrorCtor = positive ? ActionPositiveNumberOptionError : ActionNumberOptionError;

    if (valType !== 'number')
        throw new ErrorCtor(option, valType);

    if (isNaN(val))
        throw new ErrorCtor(option, valType);
}

typeof NaN is "number", not "NaN".

I'm working on it.


[question] recommended documentation method

Hi!
First of all thanks for pyee and for making it asyncio-friendly with support for coroutines!
I am using pyee for aiortc, my Python/asyncio implementation of WebRTC . I was wondering whether you have a recommendation on how to document the events an object can emit?

Not specifically - I've detailed this in my own stuff inside the init doctring for my subclass before, but I wouldn't go so far as to call that a rec.

Thanks for your answer, I might go the same way.


WIP: fix: differentiate between array typres and standard structs

Work in progress and I'm not sure if it works for array of array. To be honest I'm not sure what an openapi spec is supposed to look like that in that situation so I will need to do some research.
close #130

Actually looking at it. This for sure will not handle the input of [][]string properly

Before I forget. The schema type needs to be built in something similar to our tag type.

This actually turned out to be more straightforward than I thought.... Take a look #133  to show the bug.
I'm gonna refactor this down now as well as add some more robust tests.

Basically what was happening was the first component in would win since we were only generating once. I see this was probably done for some optimization purposes, but it appears the lib handles that pretty well already.


Web interface: build.html: Invalid request or no data available yet.

Prerequisites

☑ Have you checked for an existing issue describing your problem?
☑ Are you running the latest version?
☑ Is your ports tree recent?
☑ Is your FreeBSD Host on a supported release?

Describe the bug
At (for example):
file:///usr/local/poudriere/data/logs/bulk/main-default/2021-05-28_14h04m32s/build.html
– whilst packages are built:

Invalid request or no data available yet.

How to reproduce
Steps to reproduce the behaviour:

poudriere ports -u
put in place the four files from https://codeberg.org/Alexander88207/FreeBSD-Ports/src/branch/main/print/pdfarranger
poudriere bulk -b latest -J 3 -j 13 print/pdfarranger
in Firefox, visit:

/usr/local/poudriere/data/logs/bulk/main-default/latest/build.html
Expected behaviour

build progress.

Screenshot

Environment

Host: 13.0-RELEASE-p1
Jail: 13.0-RELEASE-p1
Browser: Firefox 88.0.1, Surf 2.1
Poudriere version: poudriere-devel-<IP_ADDRESS>10521
Ports branch and revision: latest

root@mowa219-gjp4-vm-freebsd-13-zfs:~ # poudriere jail -i -j 13
Jail name:         13
Jail version:      13.0-RELEASE-p1
Jail arch:         amd64
Jail method:       http
Jail mount:        /usr/local/poudriere/jails/13
Jail fs:           zroot/poudriere/jails/13
Jail updated:      2021-05-27 12:57:17
Jail pkgbase:      disabled

Additional context
I get the same – Invalid request or no data available yet. – with poudriere-devel-<IP_ADDRESS>10521 on 14.0-CURRENT.

It's a Firefox restriction on file://. From what I recall it is against javascript and cross-site requests.
@bsdjhb What did you do to fix this?

Thanks, now I see:
file:///usr/local/poudriere/data/logs/bulk/main-default/latest/build.html

works in Falkon and qutebrowser …

… might also work in Konqueror (the Go button is broken, I haven't reported the bug yet)

In Firefox the following setting in about:config helps.
security.fileuri.strict_origin_policy=false

Just wanted to write that this is also happening on Chromium - Version 106.0.5249.119 (Official Build) (64-bit) (I'm guessing for similar reasons). Besides disabling these security settings (or using a different browser), would it be possible to have an easier/official way to get access to all build information? Essentially it would be nice to get some sort of print out like synth. I don't use synth (just poudriere on both my server and my laptop, but the synth ui output list was nice ;D).

Just a quick note: the issue can also be server side: I ran into this issue using Safari on the Mac.
When I looked at the page using the Developer Console, I found that apache24 was throwing 403s for */.data.json files, as my server is locked down to prevent serving most files that start with a dot.
I tweaked my httpd-vhosts.conf file to permit these files, and all is well.

Maybe a peculiarity of my everyday Firefox profile … with the more modern design, I no longer see the originally reported phrase,

Invalid request or no data available yet.

Firefox to the left, qutebrowser to the right:


Allow users to specify which branch an agent mapping is using as source

Blocked by #806
Since #806 , the agent mapping can be configured to delvier configuration files from different sources - live or workspace branch.
In this ticket, the configuration server's UI should be extended in order to provide an easy way to specify and configure the source of an agent mapping.

This feature is implemented on branch https://github.com/mariusoe/inspectit-oce/tree/feature/807-agent-mapping-branch but depends on the PR https://github.com/inspectIT/inspectit-ocelot/pull/809


Populartimes available for location but unable

Not sure why there was no populartimes available.

I'm having similar issues with a lot of places. I'm getting a respone with the correct place_id and address but the popular time data is missing.

I did some further research. I checked the 'Upper Changi MRT station' on Google maps through my browser. I noticed that the Popular Time was not available. When I use my VPN through Singapore the Popular time data IS available.
After that I played a bit with proxies and VPN's for the popular times request. I was able to get popular time data for this station in Singapore, but not consistent....
To be updated

Same issue here. In my case, I've collected hundreds of Place ID's, all of which had Popular Times data in Google Maps, but many of them didn't return this data when using the command. All of them are at the same country, so as my connection. Is there any explanation or procedure to get this data through the command?
Now the other way around: if popular times is not available on Google Maps, does it mean that it may be available through the command?

Hey @lfvd
can you send me some of the place IDs where the data was available via Google Maps but not the library?
If the data isn't available on Google Maps you also can't get it via the command.

Hello Vermaat,
No VPN on my end, I am able to retrieve the populartimes on 'Upper Changi MRT station', just tested it.
Hello m-wrzr,
Could i share one place ids where data is available on google maps but cant retrieve using library?
Do try these 2 for an example, "ChIJ3R4LA4oQ2jERNSHfbiszO48" , "ChIJPYxKUwQZ2jER7KUuPbBTsUQ"
which is beauty world mrt station singapore and bayfront mrt station singapore.
Thank you!

Hey @andreian02
so it seems like both examples don't have a proper address on Google Maps (only Singapore, no streets etc.) which is used to construct the /search request using a formatted address. Maps uses a different endpoint insead for this edgecase: /maps/preview/place?....&q=beauty world singapore - at least according to the network requests.
I'll try to add this as a fallback option for cases like the one you described. Thanks for your quick reply! Sry for my late one!

#100

Hello @m-wrzr ,
Sorry, could I ask what you mean is that because those locations do not have a proper address listed on Google Maps hence even though there is data available, we are unable to query the results?
Thank you!


Dog command + GET Util

Added Dog command that gets media from API and uploads to Discord
From my research, you can't upload a file to Discord without downloading/streaming locally in JDA
Added Gson to dependencies to parse response
Added a GET request Util
Removed unnecessary logger from Help command
Might want to investigate GIF media never showing up. There is no error, there just never happens to receive a .gif in API response (in my testing).

Hmmm, I accessed it in my browser a couple times and saw a .gif pop up. That's where I got that from.

Increased buffer to 4096.
Found a JDA Json library and used that instead
used .getFile() for name of file