Incorrect build instructions in the manual

I get an error about missing packages (pasted below) while building hyper from source following the steps from the manual - https://docs.hypercontainer.io/get_started/install/build.html. The build machine is a VM running debian unstable.
I fixed the error by running
cd <GOPATH>/src/github.com git clone https://github.com/moby/moby docker
As docker repositories have moved, ideally the packages should be renamed. Also, the build instructions need to be updated to call out the docker source dependencies.
I get the following error when running "make".
% make
make[1]: Entering directory '~/go/github.com/hyperhq/hyperd'
go build -tags "static_build  with_libvirt exclude_graphdriver_btrfs libdm_no_deferred_remove" -ldflags "-X github.com/hyperhq/hyperd/utils.VERSION=0.8.1 -X github.com/hyperhq/hyperd/utils.GITCOMMIT=git describe" hyperd.go
hyperd.go:11:2: cannot find package "github.com/docker/docker/opts" in any of:
/usr/lib/go-1.8/src/github.com/docker/docker/opts (from $GOROOT)
~/go/src/github.com/docker/docker/opts (from $GOPATH)
hyperd.go:20:2: cannot find package "github.com/docker/docker/pkg/parsers/kernel" in any of:
/usr/lib/go-1.8/src/github.com/docker/docker/pkg/parsers/kernel (from $GOROOT)
~/go/src/github.com/docker/docker/pkg/parsers/kernel (from $GOPATH)
hyperd.go:12:2: cannot find package "github.com/docker/docker/pkg/reexec" in any of:
/usr/lib/go-1.8/src/github.com/docker/docker/pkg/reexec (from $GOROOT)
~/go/src/github.com/docker/docker/pkg/reexec (from $GOPATH)
hyperd.go:13:2: cannot find package "github.com/golang/glog" in any of:
/usr/lib/go-1.8/src/github.com/golang/glog (from $GOROOT)
~/go/src/github.com/golang/glog (from $GOPATH)
hyperd.go:14:2: cannot find package "github.com/hyperhq/hyperd/daemon" in any of:
/usr/lib/go-1.8/src/github.com/hyperhq/hyperd/daemon (from $GOROOT)
~/go/src/github.com/hyperhq/hyperd/daemon (from $GOPATH)
hyperd.go:15:2: cannot find package "github.com/hyperhq/hyperd/server" in any of:
/usr/lib/go-1.8/src/github.com/hyperhq/hyperd/server (from $GOROOT)
~/go/src/github.com/hyperhq/hyperd/server (from $GOPATH)
hyperd.go:16:2: cannot find package "github.com/hyperhq/hyperd/serverrpc" in any of:
/usr/lib/go-1.8/src/github.com/hyperhq/hyperd/serverrpc (from $GOROOT)
~/go/src/github.com/hyperhq/hyperd/serverrpc (from $GOPATH)
hyperd.go:17:2: cannot find package "github.com/hyperhq/hyperd/types" in any of:
/usr/lib/go-1.8/src/github.com/hyperhq/hyperd/types (from $GOROOT)
~/go/src/github.com/hyperhq/hyperd/types (from $GOPATH)
hyperd.go:18:2: cannot find package "github.com/hyperhq/hyperd/utils" in any of:
/usr/lib/go-1.8/src/github.com/hyperhq/hyperd/utils (from $GOROOT)
~/go/src/github.com/hyperhq/hyperd/utils (from $GOPATH)
Makefile:790: recipe for target 'build-hyperd' failed
make[1]: *** [build-hyperd] Error 1
make[1]: Leaving directory '~/go/github.com/hyperhq/hyperd'
Makefile:363: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

All the dependent packages are in the vendor/ directory. It is strange that this directory was not being searched when you built the hyperd.

@punitagrawal what's the Go version ?

I found out what I was doing wrong - instead of "/src" I had cloned the repository in "". I think that was why I got the build failures.
Sorry for the noise. I can build when I correctly follow the instructions.
For reference, the go version on the system -
% go version
go version go1.8.3 linux/amd64

Thank you for the response @punitagrawal


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/59718

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/87522


Fix issue #9597

Generate consistently named PDBs for libraries across generators and install those PDBs if present.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

Thanks for your pull request. The automated tests will run as soon as one of the admins verifies this change is ok for us to run on our infrastructure.

you also need to run tools/buildgen/generate_projects.sh  to   update content of CMakeLists.txt (and not just the template).

@jtattermusch I know. I did run it locally. The CMakeListst.txt was successfully generated and I tested that it works.
I intentionally did not include the re-generated file in the pull request to minimize the risk that it conflicts with changes coming from other pull requests. I thought you might want to regenerate the file yourself after you go over and approve the pull requests. Note, I myself authored another request (#9615) which impacts the generated CMakeLists.txt.

@ppietrasa please just add the generated CMakeLists.txt to this PR, because without it I can't really run the CI tests (which is what I'd like to check first).

@jtattermusch done

test this please

Known failures:

https://github.com/grpc/grpc/issues/9620
https://github.com/grpc/grpc/issues/9668
https://github.com/grpc/grpc/issues/9669


ARTEMIS-4290 Separating some integration tests into legacy-integration-tests

legacy-integration-tests is being created to hold LDAP Tests (or any other tests that won't play well with keeping threads clean) it will have fork-mode=always on the maven-surefire-plugin

the test suite behaved incredibly well with this change.
If anyone does not like any dependencies or anything we can send more commits later one...
I'm very happy with the result of this split, so I want to start using it


RHELocator is missing a release workflow

The RHELocator needs its own release workflow that is not run on every PR / push to main but can be triggered on release (e.g. tag commit merge). The release workflow should use the provided CLI tools to retrieve the image data, format the data and bake the data into a release container image (which can then be pushed to a registry).

Dibs!

I like the idea! Looking into it.


Update to PF5

[x] dependencies updated to be in compliance with PF5
[x]  npm ci works
[x]  npm run start works with warning listed below
[x] known issue export 'CommonProps' (imported as 'CommonProps') was not found in 'victory-core' error shows in UI
[ ]  CSS styling issues
[x]  update README
[x] remove unused code as much as possible (static?, GH actions?, config?)

Updated packages to latest, except:

eslint@8 - v9 breaks formatjs
react-redux@7 - v9 breaks notifications
redux@4 - v5 breaks notifications
redux-thunk@2 - v3 needs redux v5
<EMAIL_ADDRESS>- 1.77.7+ complains about mixed-decls (which I assume get fixed in pf6)

Also:
removed unused packages, images, scripts, configs
prettier everything, including sorted imports
made eslint pass, disable rules conflicting with prettier, fixed rest
updated react-icons & react-tokens imports to point at individual files
removed index, bootstrap - use AppEntry directly
updated README to match
added a /preview/ check alongside the /beta check (but neither should be needed)
made sure no references to cloud.redhat
If there is no dead code or remaining PF issues .. might be ready :)


Convert auth package to kotlin

Fixes: #5956
Tested on Pixel 9 and Samsung S24+

Thanks Paul! :-)
Would you mind checking this?
NotificationActivity.kt:99:51 Unresolved reference: getUserName

Done 👍


Update spawner.py

Fixed spawner.py

Is this a duplicate of #112 ?

Hi @betatim ,
Bedazzled! This is what exactly I wrote here.
This all depends on you which pull request you want to merge.
Thanks for letting me!
Cheers,
Amit Kumar Jaiswal

Duplicate of #112, thanks a lot anyway!


Simple Dockerfile installation fails

Checklist

[X] I've read the contribution guidelines.
[X] I've read document and no solution were found.

Issue type
Help wanted
Step where the issue is related to
Build
Environments

OS: Windows with WSL (Ubuntu 22.04)
Docker setup:

CARET version
Caret: 0.4.15 & 0.4.10 tried out
Target application
No response
Description
My Dockerfile, which is super close to your dockerfile:
FROM osrf/ros:humble-desktop

RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        locales=2.35-0ubuntu3.1 \
        && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8

ARG CARET_VERSION="v0.4.15"
ENV WORKSPACE_CARET=/workspaces/ros2_caret_ws

RUN git clone https://github.com/tier4/caret.git ${WORKSPACE_CARET} && \
    cd ${WORKSPACE_CARET} && \
    git checkout "$CARET_VERSION"

RUN cd ${WORKSPACE_CARET} && \
    rm -rf src build log install && \
    mkdir src && \
    vcs import src < caret.repos && \
    . /opt/ros/"$ROS_DISTRO"/setup.sh && \
    ./setup_caret.sh -c

RUN cd ${WORKSPACE_CARET} && \
    . /opt/ros/"$ROS_DISTRO"/setup.sh && \
    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF

But it fails:
docker_build.log
Smth isnt really compatible here :/ and i cant figure it out at all.
Steps to reproduce
copy my snippet into a Dockerfile
docker build -f Dockerfile .
Commands
docker build -f Dockerfile .

Logs
[docker_build.log](https://github.com/tier4/caret/files/12570179/docker_build.log)

LTTng trace log file
No response
Screenshots
No response

This error is expected to resolved in this PR: (https://github.com/tier4/CARET_analyze/pull/330)
The cause is due to the latest version of setuptools that CARET references, this error is avoided by dropping the setuptools version as a workaround.

the workaround did the job 🎉

This error is expected to resolved in this PR: (tier4/CARET_analyze#330) The cause is due to the latest version of setuptools that CARET references, this error is avoided by dropping the setuptools version as a workaround.


add a default set of effects/commands

This adds a couple of useful commands that are commonly used.

@andrejewski Thanks for the review! I kind of expected this and I love the fact that you want to keep it simple. Personally I can totally live without these functions being in the main repo but here are my thoughts on why I like using them:
Cmd.none(): In accordance with the Elm API and to make the return type of update explicit and consistent with what the other cases return.
Cmd.ofMsg(msg): I really like this one because this is the first and simplest example of what I explain to people what commands/effects do and I would say: "Commands are message-producing machines, they could run side effects and are able to dispatch messages eventually, here, the ofMsg function directly dispaches the next message in the dispatch loop" and another (personal) reason for it is that I like to think about the update function as a state machine (messages as transitions), so I would tell myself: "I updated the state and next I want to just using transition x". Counter argument for this is that I could just recursively call the update function with my next message
Cmd.promise and Cmd.postJson:

It's better to just let people solve their specific problem, the overhead of an effect is minimal.

I agree on the fact that it is minimal but the reason I would like to have these functions is to lower the learning curve of commands. The Elm Architecture is unfortunately not general knowledge that you would expect people to just know and be easily productive with. Personally I think it is quite a leap from using commands to implementing your own custom commands, even for someone like me who is comfortable with functional languages and their techniques, but again, maybe that is just me :smile:
All in all, I really really loved the library and already started using it for a mini production app I am working on, thanks a lot for this :heart:

Feldman had a talk where he said doing this was a bad pattern in Elm too. Better to use a utility. In Raj, a lot of power comes from strictly separating what needs to be an effect from the simple business logic. Throwing an effect in makes things are harder to test because now what you are trying to test requires you to approach a desired state with N messages, but you really only want 1 input and output in tests if you can.

Interesting talk, thanks for link! I am still skeptic though on the added value of not using effect to jump between states, maybe if my programs' update function becomes really large that I would consider it a scalability issue.

I do see other projects building out these effect wrappers so maybe there is a need for beginners. I've been doing this a long time, so the indirection is not valuable to me.

I thought it was a good idea to have these commands anyway so I made a package: raj-commands


Remove Dependencies Installation env var from Python templates

[ ] All tests passed. If this feature is not already covered by the tests, I added new tests.
[ ] This pull request is on the dev branch.
[ ] I used gofmt for formatting the code before submitting the pull request.

There is no effect from these environment variables on Python projects since the installation logic is handled by the cli-core module, which creates a new virtual environment.


Component is not accessible

Currently, people who rely on assistive technologies cannot use any site/app that uses this component. This means, for example, that this component cannot be used for government sites where laws prohibit discrimination based on physical abilities and that it cannot be used on sites/app that care about being accessible to people with disabilities.
To reproduce

Activate a screen reader (e.g., VoiceOver on Mac)
On a page that has the vue-color component on it, attempt to select and use the vue-color component using the screen reader controls

What should happen
You should be able to see, select and use the vue-color component via the screenreader.
What actually happens
The vue-color component is entirely invisible to the accessibility subsystems. You cannot see, select, or use it using assistive technologies like a screen reader.

Thanks for your remind. We're not taking accessibility very seriously before.  Will pay more attention in next the big release 3.0 which we are working on it.
If any news, I will update this issue. Thanks.

Are there already-identified items slated for the 3.0 release? I couldn't find a lot of details in the project milestones. Cheers!

we already released v2.5.0 to improve accessibility (#129).  If it's not enough, please let us know and reopen this issue. Thanks!


Giving a chat interface in the chat with pdf ai

Providing a chat interface would assist users in tracking their previously asked questions and the corresponding responses.

Hi @SurajSanap, I have given this chart UI to this app. Is this something you are looking for?


Extension does not activate any longer and stopped working

Hello, my extension is very simple but somehow it stopped working.
I don't know what went wrong, because it is more or less still the same code from the yo generator. And it worked some time ago.
Here is the code:
https://github.com/angular-schule/vscode-angular-schule-extension-pack
I'm looking at "View > Output > (Log) Extension Host"
the extension is not in the list of extensions, that ExtensionService tries to activate.
Without any activation, the registration via commands.registerCommand seems to be never called. In the end the command fails with:

Is this a bug in VSCode? Or is the extensions is somehow outdated?
Many thanks!

VS Code version: Code 1.24.1 (24f62626b222e9a8313213fb64b10d741a326288, 2018-06-13T17:51:32.889Z)
OS version: Windows_NT x64 10.0.15063

Do you have all the extensions this extension depends on installed? (There is a list of extensionDependencies in the package.json.)
Is there anything in the Debug Console of the window you started from?

Hi. Thanks for stepping in!
This extension is mainly an extension pack. The listed extensions are installed during the installation of my extensions. This part works like a charm. After that the exension is supposed to change some user settings, to adjust the extensions of the pack. This worked fine in the past.
And no, there is no output regarding my extension. Complete silence. I see the ExtensionService output from other extensions, but not mine. The funny part is the following:

The extension in the store installs the extensionDependencies flawlessly.
I can also debug this locally. But only if I remove the extensionDependencies before debugging. While debugging the commands do work.

Hi just to add to this issue, i'm having a similar problem, when i installed the VSCode May Update my extension began to behave weirdly, i have some commands that when i do the keybinding call they fail, but if i manually execute the function by right clicking the file and selecting the function that i want to execute then the function executes correctly. My extension worked fine before the update.
I don't know if i have to create a new issue so i'm just adding to this conversation.

Here's an image with the error, i'm receiving.

@glennreag Your command is called without arguments when run from a keybinding, maybe that causes it to fail?

@JohannesHoppe I think when debugging the dependencies are not automatically installed. Make sure you have all (including recently added ones) dependencies already installed when you start debugging.

@chrmarti Yeah somehow the May update changed the context, and when the function was called from keybinding, the context didn't receive arguments. Thanks for the help.

I still think that my original issue is different! ;-)

@JohannesHoppe Can you confirm that all the dependencies are installed?

The extension has the following
"extensionDependencies": [
        "eg2.tslint",
        "Angular.ng-template",
        "EditorConfig.EditorConfig",
        "msjsdiag.debugger-for-chrome",
        "christian-kohler.path-intellisense",
        "CoenraadS.bracket-pair-colorizer",
        "formulahendry.auto-rename-tag",
        "AngularDoc.angulardoc-vscode",
        "pkief.material-icon-theme",
        "aeschli.vscode-css-formatter"
    ],

after installation from the marketplace I have all of them installed:

eg2.tslint ✅
angular.ng-template ✅
editorconfig.editorconfig ✅
msjsdiag.debugger-for-chrome ✅
christian-kohler.path-intellisense ✅
coenraads.bracket-pair-colorizer ✅
formulahendry.auto-rename-tag ✅
angulardoc.angulardoc-vscode ✅
pkief.material-icon-theme ✅
aeschli.vscode-css-formatter ✅

So everything is fine here.
Still, I can't execute the commands:

The debug console shows: Extension 'angular-schule.angular-schule-extension-pack' failed to activate. Reason: unknown dependency 'pkief.material-icon-theme'.
Looks like themes no longer work as a dependency. In the latest insiders builds (and upcoming stable release) you can use "extensionPack" instead of "extensionDependencies" in the package.json as a workaround. (That also fits your usage better from what I see.)

@JohannesHoppe Since it is an extension pack, I would suggest to use extensionPack property instead of extensionDependencies which will take off the run time dependency on these extensions.
But please note that you can only do it from 1.26 as this feature is available on then.

@chrmarti @sandy081 Many thanks for figuring this out for me. 👍
Indeed, the extension pkief.material-icon-theme (which is an icon theme) was causing the trouble. After removing the entry, my extension is again loaded.


Improve bower error reporting on 401 - Unauthorized

We're using nexus private bower registry, and we've noticed that the bower client isn't producing the error we're hoping for. The debug info must be understood clearly. Otherwise, it's difficult to know where the problem resides - the client configurations, or the server.
Steps to reproduce the issue:

 Install private bower for nexus
Include all registry specs in .bowerrc, but avoid including "nexus" object.
Run bower register example-package svn+https://svn.example.com/example-package --loglevel=debug

After step 3, you should see the following output:
bower example-package#*   resolve svn+https://svn.example.com/example-package#*
bower example-package#*   export v0.1.0
bower example-package#*   resolved https://svn.example.com/example-package#0.1.0
bower example-package     register svn+https://svn.example.com/example-package
bower                     EUNKNOWN Unknown error: 401 - undefined
...

Tracing the network with Wireshark will produce the following results:
POST /repository/bower-internal/packages HTTP/1.1
User-Agent: node/v6.9.1 linux x64
...
content-type: application/x-www-form-urlencoded
accept: application/json
content-length: 103
Connection: close

name=example-package&url=svn%2Bhttps%3A%2F%2Fsvn.example.com%2Fexample-packageHTTP/1.1 401 Unauthorized
Date: Wed, 07 Dec 2016 06:39:18 GMT
Server: Nexus/3.1.0-04 (OSS)
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
WWW-Authenticate: BASIC realm="Sonatype Nexus Repository Manager"
Connection: close

Instead, we believe the bower log should end with:
EUNKNOWN Unknown error: 401 - Unauthorized

Additional notes: I understand that this issue should be reported in the bower-registry-client repository, just its github link is unavailable at the moment.

I had very similar issues in the past with bower.
The major problem in our case was, that bower is not showing the failure URL. E.g. it should be something like:
EUNKNOWN Unknown error: 401 - Unauthorized at https://<yourServerURL>/repository/bower-internal/packages
additionally to this the result of the http body/payload of the server response shall also be traced in level debug. So all informations would be available to track down the problem with the access. This would have reduced hours of analysis to track down, that the issue in NOT related to SVN like the last URL in the bower report on the console is reporting

Feature like this one won't be implemented as Bower is deprecated now


codacy integration

@williamboxhall Codacy is awesome!
https://www.codacy.com/public/fwbrasil/clump/dashboard?bid=2105549

For comparison:
https://www.codacy.com/public/fwbrasil/clump/dashboard?bid=2104753

:+1: but so many questions!

Codacy looks amazing


Feedback for: engine/installation/linux/centos.md

File: engine/installation/linux/centos.md
Add your user to docker group.
$ sudo usermod -aG docker your_username` <--
An extra [`]

Thanks for the report @chenhw2! Looks like this was fixed in #767.


Checking if whatsapp number is valid

Using the wac.Exist() method, I get same {"status":400} response for both valid and invalid whatsapp numbers. I tried to do this using the support code provided here
ch, err :=<EMAIL_ADDRESS>if err != nil {
  panic(err)
}
resp := <- ch
fmt.Println(resp) // always returns {"status":400}

Am I doing something wrong?

Hey @kickbox ,
Status 400 indicated a client side error. When I send a correct number a receive a status of 200, if I send a incorrect one a status of 404. Did you connect to WhatsApp before you tried to check the number? Your code works for me at least.

Replace<EMAIL_ADDRESS>with<EMAIL_ADDRESS>

I want to build a WhatsApp checker tool, but I can't code, please help me get it


Multi image assets and text assets in audience

@loujiayu - I recommend please retain legacy reference content and advise customers to use new options instead. The reference auto gen will bring back these properties anyways. Also the properties are still visible in the WSDL and SDK's. So it's better to acknowledge their presence and provide guidance to limit support escalations.
@Gopal-MSFT @qitia @rgaritta @jmadsen362 FYI


Crash with latest tinkies

crash-2023-02-11_06.45.35-fml.txt

Downgrade to JsonThings 0.4.2

Duplicate of SlimeKnights/TinkersConstruct#5078. Not something Tinkers' Things has any control over, this is just a Thing Pack addon.


Check use of Salt with libcrypto.so.1.1

On Debian both salt 2016.3.4 and 2016.11.0 are having issues due to the removal of a symbol in libcrypto.so.1.1. This can be easily seen on Debian strech and Debian Team are tracking a fix for their build of Salt.
see Bug#844503: Acknowledgement (salt-call fails with libcrypto.so.1.1: undefined symbol: OPENSSL_no_config).
here is part of the email thread explaining the issue
salt master is uninstallable:
Setting up salt-master (2016.3.3+ds-3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/salt-master.service → /lib/systemd/system/salt-master.service.
Job for salt-master.service failed because the control process exited with error code.
See "systemctl status salt-master.service" and "journalctl -xe" for details.
invoke-rc.d: initscript salt-master, action "start" failed.
● salt-master.service - The Salt Master Server
Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2016-11-17 15:03:20 CET; 6ms ago
Process: 2389 ExecStart=/usr/bin/salt-master (code=exited, status=1/FAILURE)
Main PID: 2389 (code=exited, status=1/FAILURE)
Nov 17 15:03:20 sid salt-master[2389]:     libcrypto.OPENSSL_no_config()
Nov 17 15:03:20 sid salt-master[2389]:   File "/usr/lib/python2.7/ctypes/init.py", line 3...r__
Nov 17 15:03:20 sid salt-master[2389]:     func = self.getitem(name)
Nov 17 15:03:20 sid salt-master[2389]:   File "/usr/lib/python2.7/ctypes/init.py", line 3...m__
Nov 17 15:03:20 sid salt-master[2389]:     func = self._FuncPtr((name_or_ordinal, self))
Nov 17 15:03:20 sid salt-master[2389]: AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so...fig
Nov 17 15:03:20 sid systemd[1]: salt-master.service: Main process exited, code=exited, statu...LURE
Nov 17 15:03:20 sid systemd[1]: Failed to start The Salt Master Server.
Nov 17 15:03:20 sid systemd[1]: salt-master.service: Unit entered failed state.
Nov 17 15:03:20 sid systemd[1]: salt-master.service: Failed with result 'exit-code'.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: error processing package salt-master (--configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for systemd (231-10) ...
Errors were encountered while processing:
salt-master
E: Sub-process /usr/bin/dpkg returned an error code (1)

actually the fix looks like it is  2016.11.0, but I had to check out from github git clone git@github.com:saltstack/salt.git -b 2016.11 which reports 2016.11.0 but I am unsure about that, had to do python setup.py and copy over a /etc/salt/minion to use, but it loads up and runs. Long story short 2016.11.0 should work but PITA to get it installed.  Wondering I need to start building for Debian 9, was going to wait till they had a Beta


Add and Test Map Interactivity & Functionality / All Maps

Place all objects, NPCs, interactables are in the correct place with appropriate triggers (including responses to world state variables).
Make sure to check for correct collisions and layering.

Make sure to include all level changes

PR #82 fixing most layering issues on maps. Outstanding object layer issues:

Blue fires around mission objectives in Lovelace Tower and Library maps are not rendering above other tile objects.
"bad book" objects are rendering above the player when the player walks over them. They should be rendering below the player, with no collisions.
4x Lovelace NPCs are not rendering at all in the game when it launches.

[ ] Fix playAnimation issue
[ ] Save data to check inside_perimeter content (groundskeeper dialogue / levelChange disabled)
[ ] Quest Log updates
[ ] Lovelace library door not interactable
[ ] Secret library books rendering above player

Issues with functionality not working as expected:

[ ] library books with key bad-book should become hidden when the player completes and closes objective 5
[ ] bad-book objects should remain hidden on subsequent reentries into the library
[ ] transition from lovelacehallway back into the library should be enabled once the final objective is complete
[ ] transition from lovelace_tower should be enabled after objective 4 is complete
[ ] divination spell animation (of the player performing the spell) is not playing on doors x2
[ ] library door from lovelace_tower should be interactable before objective 4 is complete

@MarvJohnson The very last thing that is needed here (if we want) that I haven't been able to make work yet, is the interactable conversationResponder object on the library door before obj 4 has been completed.
In the event.js file, this is the code I'm using to try to make it work:
  if (event.name === "playerDidInteract") {
    if (event.target.key === "library-door-locked") {
      if (!world.isObjectiveCompleted("api-04-remote-and-local")) {
        world.startConversation(
          event.target.conversation,
          event.target.conversationAvatar
        );
      }
    }
  }

And also:
  if (world.isObjectiveCompleted("api-04-remote-and-local")) {     worldState.obj4Complete = true;     world.forEachEntities(library-door-locked, (libraryDoor) => {       libraryDoor.interactable = false;       libraryDoor.disableBody = true;       libraryDoor.key = "";     })   }
The problem is that once obj 4 has been completed, the disableBody property isn't working, so it doesn't actually get disabled and blocks the player from interacting with the now spellable door and then actually entering the door.
If you have time and can make this work, please feel free to do so. If not, I think it's fine if we don't include it in this release!


Tabs: onTabChange event

Info
This request is from Paul Li (@solittlework)
Currently there are no onClick events for the Tab component. An onTabChange event would be nice to allow us to note what tab a user is currently on, or to initiate some other functionality when a tab is clicked.
If you want to maintain what tab was clicked in someone's history, this could be a good use case.
Acceptance Criteria:

Tabs component has an onTabChange property that can accept a function. Fires when the active tab is changed.
The event will send back the clicked tab

Lavish Handa and Rupinder Kang also expressed a need for this feature for their product teams.

:tada: This issue has been resolved in version 1.17.0-alpha.93 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.17.0-alpha.36 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.25.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.24.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 3.0.0-alpha.5 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


add support for XPages

Adding XPages language( and XSP markup for the XPages runtime). Per CONTRIBUTING.md:

added entry to languages.yml
no public/licensed grammar definition, so not added
multiple samples from multiple authors and projects added to samples/, primarily within .xsp extension files (and metadata and config files similarly name-spaced)
referencing this GitHub search result with 4,815 code results as of this PR (screen shot below) for 'in-the-wild' use on GH

![screen shot 2015-06-04 at 10 24 07 pm](https://cloud.githubusercontent.com/assets/622118/7999205/461aebbe-0b0d-11e5-9455-6ec740d26119.png)

I wasn't aware of the need to set any environment variables for the Travis CI instance.

You don't need to set any environment variables normally. You have two errors:

file extensions need to be sorted in languages.yml (except for the first one)
you need to set the tm_scope to none explicitly

Also, do you know what these files are? With your pull request they would be detected as XPages :/

Ah. I'll make adjustments accordingly both to languages.yml and the GH search.
Thank you.

I made the changes to the languages.yml file, working on improving the search. It seems I can get a good set of results of code as opposed to repository, which gives me more than I want.

I think I'm at the limit of my GH advanced searching abilities. For repositories, I was able to come up with this search, which isn't keying off of extensions, but reflects 140+ repos and 27k+ Code elements.
If the search is to just validate a certain popularity of the language, I think we have that.

@pchaigno After looking at another, completed PR's searches, I'm using a page from their PR for a breakdown by extension. This ought to be granular enough.
[.xsp](https://github.com/search?utf8=✓&q=extension%3Axsp+xp%3Aview&type=Code&ref=searchresults}
.xsp-config
.xsp.metadata
.form
.view

So, seeing how I've heard nothing further from @pchaigno, if anyone happens to know how I can filter the PR to be a bit more selective without a dictionary file I don't have, I would appreciate it. I think there's a viable PR here, it just needs to filter out another format or two that uses the same .xsp file extension.

Sorry about this. I'm having very busy weeks lately :/
So I think have enough in-the-wild examples of XPages for each extension :+1:
The issue now is that we'll have to identify the conflicting languages and maybe add support for them in Linguist. If we don't they will be recognized as XPages.
.xsp.metadata and .xsp-config are very specific and I couldn't find any conflicting language. In contrast, .xsp, .form and .view have conflicting languages.
Unsurprisingly, .form and .view are used by many other languages (JSON, HTML, PHP, etc.). I'm not sure it's a good idea to add them now. We may have, in the future, an option not-a-language for our classifier, and it could solve this issue.
@hoelzro I know you helped us before for Perl-specific issues. Would you happen to know what these files are? It looks like they have something to do with Perl...

No worries, I guess I'm just antsy. I totally understand the being busy
side of things.
I guess I had been expecting unique file extensions, which aren't the case.
My update w/ the by-extension examples should give some specifics as to
required inclusions in the XPages specific files. I'm not sure what further
I can do to delimit the files by content, though I know what are required
per-file extension (see mentioned by extension links). I'm fully willing to
learn and adjust my PR as needed, so if anyone has recommendations on that
from, I'd welcome it.
On Fri, Jun 26, 2015 at 7:54 AM Paul Chaignon<EMAIL_ADDRESS>wrote:

Sorry about this. I'm having very busy weeks lately :/
So I think have enough in-the-wild examples of XPages for each extension [image:
:+1:]
The issue now is that we'll have to identify the conflicting languages and
maybe add support for them in Linguist. If we don't they will be recognized
as XPages.
.xsp.metadata
https://github.com/search?utf8=✓&q=extension%3Ametadata+filename%3Axsp&type=Code&ref=searchresults
and .xsp-config are very specific and I couldn't find any conflicting
language. In contrast, .xsp, .form and .view have conflicting languages.
Unsurprisingly, .form and .view are used by many other languages
https://github.com/search?utf8=✓&q=extension%3Aform+NOT+xml&type=Code&ref=searchresults
(JSON, HTML, PHP, etc.). I'm not sure it's a good idea to add them now. We
may have, in the future, an option not-a-language for our classifier, and
it could solve this issue.
@hoelzro https://github.com/hoelzro I know you helped us before for
Perl-specific issues. Would you happen to know what these files
https://github.com/search?p=4&q=extension%3Axsp+code&ref=searchresults&type=Code&utf8=✓
are? It looks like they have something to do with Perl...
—
Reply to this email directly or view it on GitHub
https://github.com/github/linguist/pull/2438#issuecomment-115670213.

.xsp, .form and .view have conflicting languages.

I agree with @pchaigno that it might be more trouble than it's worth to add these right now. @edm00se - what do you think about updating this Pull Request to only include .xsp.metadata and .xsp-config and then you can use the Linguist Overrides to manually set the language for .xsp, .form and .view in your repositories?
Unfortunately our classifier isn't sophisticated enough to return a "don't know" answer for a file so if we include .form etc at this point we're almost guaranteed to introduce issues for other community members not using XPages.

@arfon I suppose this has some certain merit, as the .xsp.metadata and .xsp-config files will usually accompany the other files and should achieve what I'm looking for.
If I understand the Linguist Overrides correctly, then I would be able to correctly identify by adding a few lines in a .gitattributes file, specifying the file extensions and how to recognize them as project type. As for the syntax highlighting, I don't believe they would easily be added to the source files, as it wouldn't parse correctly in the IDE; would that be able to be set in the project, outside the source files?

I've updated my Pull Request accordingly (removed the .form, .view, and .xsp files and removed the related samples). I also have specified what I believe should be the correct Linguist Override for a given application of mine with the XPages runtime.
If anyone has any references on syntax highlighting overrides kept outside the main file, I would appreciate it.

@pchaigno, @arfon, how do things look now to either/both of you?

Looks good. Thanks @edm00se!
Also, this config will work once this change is live in GitHub.

I plan to cut a new gem this week sometime which will include this change.

Excellent news. Thank you.


Add a table comparing RVA and RVB

This update enhances the documentation by providing a clear and organized comparison of the RVA and RVB extensions, making it easier for developers and stakeholders to understand the differences and requirements.

Added a new table to the documentation that provides a detailed comparison between the RVA23U64, RVA23S64, RVB23U64, and RVB23S64 extensions.
Sorted the entries alphabetically and updated the numbering for clarity and consistency.

@kasanovic @aswaterman please, double check each line. I did went thorough rva and and rvb multiple times, but I'm not 100% confident that I captured it precisely.

Can we add another view of this information that just shows the differences between RVA23 and RVB23? I still want this even though they are split into 2 separate OpaVotes.

RVA and RVB are really separate beasts, and so linking them together in the form of a table doesn’t make much sense to me. I’ll scan the table for fact-checking purposes, but I won’t be the one to approve the PR.

I'm asking for another view of the table that omits rows that are the same between RVA23 and RVB23. Make sense?

I don't care if it gets approved in a pull request. I just want to see the information.

The only bugs I spotted in the table are that Zicond and Zcmop are missing.

I don't see the H extension (mandatory in RVA23, expansion option in RVB23) mentioned. Also, when H is present, there are several other extensions like Ssstateen, Shcounterenw, etc. that become mandatory but I don't see those mentioned in the table either.

@james-ball-qualcomm H and its dependencies are on the table.

I don't see H or its friends in the table sent out by Jeff about an hour ago. Is his table incorrect/incomplete/out-of-date?

RVA23 vs RVB23 Differences.pdf

I don't see H or its friends in the table sent out by Jeff about an hour ago. Is his table incorrect/incomplete/out-of-date?

RVA23 vs RVB23 Differences.pdf

@james-ball-qualcomm I shared a complete version before the email was sent. If you check the Google Sheet, it is fully updated.

I don't see any email from you sharing a complete version before Jeff's email went out. Also, what do you mean the Google Sheet? All I'm aware of is this ASCIIDOC table in this GitHub and then a PDF that Jeff mailed out. Is there also a Google Sheet?

I'm sending you a meeting request so we can discuss this live and clear it up quickly.


Fix overflowing of the text in the button in the composer

Description
Beside make it the same between browsers I also aligned image to the text, as it was a little of centre which was striking me lately
closes #5689
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Code is clear and sufficiently documented
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )

Processing this pull request

Merged into branches iso7, master in 88ea32e3658775ed55bc4c41c9396f58c964d1fc


[WFLY-19041] Upgrade HAL to 3.7.0.Final

https://issues.redhat.com/browse/WFLY-19041

Thanks @hpehl


react tutorial

starting from fa23 version.

Added (Modified):

Explains the move from React class components to functional components
Explain onCleanup behavior using the useEffectHook
New table for possible summary of uses of useEffect
A little reference to react's amazing docs on JSX on the JSX parser
Fixes all codeblocks from ts to tsx (does not effect anything)

Needs to say that next.js renders whatever is in app/pages.tsx  ; whatever is in that file becomes the root component.
Other than that, it is very good!  It will save me a lot of time in lecture. Thank you to all who contributed!

I have reviewed the PR and added some slight changes:

Fixed a few typos in the document and refactored some trivial code block errors.
Updated a broken link to the next.js documentation
Rephrasing some comments to add clarity.
Noticed the code block in the Props subsection was not getting detected (even though ```tsx was provided) and that cascaded into text and put some text into code blocks until the next section. Fixed it by adding a new line before the code block.


Move Ehcache 3.5 to be Java 8 only

See announcement on mailing list

This is flagged as API but the goal is to have 0 API impacts in this context. However, removing all the functional types introduced to copy Java 8 ones will have impact at the SPI level.

Can this be considered fixed now?

This is now done.


How to point device for "lcfs daemon"

Hi, when i build lcfs following Manual installation.  Starting lcfs should point device such as /dev/sdb.  I point device, but get error
# lcfs daemon /dev/vdb /var/lib/docker /search/odin/lcfs
open: Device or resource busy
lcfs[19268]: Failed to open /dev/vdb

When i change a file, i get error
# lcfs daemon /search/odin/xuezhiyou/lcfs.dev /var/lib/docker /search/odin/lcfs
lcfs[25702]: Device is too small. Minimum size required is 40MB

# fdisk -l

Disk /dev/vda: 42.9 GB,<PHONE_NUMBER>0 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00099a84

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886079    41942016   83  Linux

Disk /dev/vdb: 859.0 GB,<PHONE_NUMBER>00 bytes,<PHONE_NUMBER> sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x1ab19eeb

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb2            2048      411647      204800   83  Linux

How should i do?

The reason is device should not mount path. So you need a idle device for lcfs. If you want umount existing path, please backup. Once lcfs  startup, it will format the device.


adds safeAreaInsets to useViewer hook for the homepage

Per the linked ticket, this PR upgrades @farcaster/frame-sdk to v0.0.21 and adds safeAreaInsets to useViewer so that the home page can use it

Closes warpcast/scores-frame#38


Practice: Impact Analysis

Summary
For a new practice: a short summary, a few sentences at most.
A system way to assess the impact a particular workflow is costing an enterprise (cost, time, resources, etc.). This will help organisations to quantify and validate the need to improve on a business driver/drivers.
Example: Company A is thinking of introducing an online application which will automate a manual process. By carrying out an impact analysis, the company has assessed that $Y / annum is spent on this manual process, and the introduction of an online app will automate said process, resulting in Z savings in time and dollars.
For changes to an already-published practice: provide the link and describe your proposed change.
Progress and Publication Status

[ ] Already published on the Tanzu Developer Center.
[ ] Published internally or elsewhere; needs review for Tanzu Developer Center publication
[ ] Partially written and/or draft in progress
[x] Not yet written

Maturity of this Practice

[ ] Very Mature: well established and widely used by our organization and others
[ ] Mature: have successfully used many times with many teams / projects
[x] Immature: have used several or many times but is evolving quite a bit with each usage
[ ] Incubating: have used a few times, still rapidly evolving, has promise but unsure if generally applicable across many teams

Resources
List anything here that might be helpful for writing this article.

Links to articles and blog posts
Links to presentations, videos, books, etc.

https://docs.google.com/presentation/d/1W7P0JvKxAi66i6bXMfdEl8AQEHEYgXWX6-Fzc2Z-6n8/edit?usp=sharing
Contribution Guide
Please refer to the Tanzu Practices Contrition Guide for detailed instructions.

Assigned to @lucaishovmware

Please take a look at the Practice Contribution Guide for guidance around drafting and seeking feedback about this workshop.


NYCHA Tenants

Overview
addressing #260 from a single spreadsheet and relatively straightforward work
load_clean_nycha_data
To clean up the puma level NYCHA tenants data.
the bulk of work takes place where the RAD and public housing population gets summed up by race.
for i in range(6):
        nycha_data[f"nycha_tenants{race_labels[i]}_count"] = nycha_data.iloc[:, i] + nycha_data.iloc[:, i + 6]

nycha_tenants
I don't love the design that the join with census data takes place in here. I initially had in the load_clean_nycha_data but then realize if the join takes place earlier would mess up the percentage columns for the total population from census. I settled for this current design but open to other suggestions.
get_percentage
to get the percentage of NYCHA population out of total population of the geography

final output has 24 columns each 2 measures (count, pct) * 2 indicators(nycha tenants & pop) * 6 races

Okay so turns out not a complicated refactor to do it more explicitly at all. @SashaWeinstein I agree it is more readable this way and let me know the new commit addressed your concern. Thanks!

@SashaWeinstein cool I like what you did with zip. Let me know if you can approve and I will merge it in. Thanks!

That looks a lot better! I made an additional change to use the python built-in zip instead of enumerate because I finally figured out what zip does and I wanted to use it.


chore: release main

:robot: I have created a release beep boop
dev-dependencies-client: 2.0.2
2.0.2 (2023-12-13)
Bug Fixes

bump common deps for client and server (b0a7e8c)

dev-dependencies-server: 1.2.8
1.2.8 (2023-12-13)
Bug Fixes

bump common deps for client and server (b0a7e8c)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/aversini/dev-dependencies/releases/tag/dev-dependencies-client-v2.0.2 :sunflower:

:robot: Release is at https://github.com/aversini/dev-dependencies/releases/tag/dev-dependencies-server-v1.2.8 :sunflower:


Resolve data races in eBPF program and link objects

During the kernel mode stress testing it is becoming apparent that there are data races in the execution context. To guard against this, the execution context should annotate all of the fields in the program, link, and, maps with concurrency annotation to detect data races at analysis time as well as document what locks protect what fields.

An alternative and better solution might be to convert the link and program over to immutable objects protected by read copy update semantics.

@Alan-Jowett is there anything else left to do for this issue or can this be closed?


Is it possible to add multiple images in one cell?

If so, how can I position them horizontally next to each other?

as I know, you should have posibilities to add how many images as you want:
worksheet.addImage(imageId2, {
  tl: { col: 1.5, row: 1.5 },
  br: { col: 3.5, row: 5.5 }
});

Source: https://github.com/exceljs/exceljs#images

as I know, you should have possibilities to add how many images as you want (and somewhere you want):
worksheet.addImage(imageId2, {
  tl: { col: 1.5, row: 1.5 },
  br: { col: 3.5, row: 5.5 }
});

Source: https://github.com/exceljs/exceljs#images

That would spread over multiple cells, right? Let's say I have 5 images. How can I put all of them inside one cell (resizing them if they exceeds cell's size)

worksheet.addImage(img1, {
  tl: { col: 1.0, row: 1.0 },
  br: { col: 2.0, row: 1.2 }
});

worksheet.addImage(img2, {
  tl: { col: 1.0, row: 1.2 },
  br: { col: 2.0, row: 1.4 }
});

worksheet.addImage(img3, {
  tl: { col: 1.0, row: 1.4 },
  br: { col: 2.0, row: 1.6 }
});

//...

should works

worksheet.addImage(img1, {
  tl: { col: 1.0, row: 1.0 },
  br: { col: 2.0, row: 1.2 }
});

worksheet.addImage(img2, {
  tl: { col: 1.0, row: 1.2 },
  br: { col: 2.0, row: 1.4 }
});

worksheet.addImage(img3, {
  tl: { col: 1.0, row: 1.4 },
  br: { col: 2.0, row: 1.6 }
});

//...

should works

So I tired it with 3 images (both rows has 3) and this is what it looks like:

This is the data:

I was looking to put all images inside the column and maybe even keep proportions, something like this:

Appreciate your response

I'm facing with the same issue...
Can't we just point X images into a specific row/col while keeping its ratio?...

perhaps merge the images before inserting them. e.g. https://github.com/lukechilds/merge-images


appdaemon: add setuptools

Motivation for this change
noticed it was broken while reviewing #72617
before:
[nix-shell:/home/jon/.cache/nix-review/pr-72617]$ ./results/appdaemon/bin/appdaemon --help
Traceback (most recent call last):
  File "/nix/store/1wjaps7mwagg6mjk59f0cbc1cy6qxbkb-appdaemon-3.0.5/bin/.appdaemon-wrapped", line 6, in <module>
    from appdaemon.admain import main
  File "/nix/store/1wjaps7mwagg6mjk59f0cbc1cy6qxbkb-appdaemon-3.0.5/lib/python3.7/site-packages/appdaemon/admain.py", line 2, in <module>
    from pkg_resources import parse_version
ModuleNotFoundError: No module named 'pkg_resources'

after:
[14:51:41] jon@jon-desktop /home/jon/projects/nixpkgs (master)
$ ./result/bin/appdaemon --help
usage: appdaemon [-h] [-c CONFIG] [-p PIDFILE] [-t TICK] [-s STARTTIME]
                 [-e ENDTIME] [-i INTERVAL]
                 [-D {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-v] [-d]

optional arguments:
...

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

builds on linux and darwin, fixes package at runtime


Add a CI to the repo

We could use Travis CI, Circle CI or any other CI depending on what is beneficial. Continuous integration is basically used to build the repo and check for errors. Which will play a major role after the tests have been written and make things easier. Just need to add some files which will instruct the CI to do so. #15 needs to be completed as soon as possible.

Instead of adding fancy stuff like CI, which are not the need of the hour, we should probably concentrate our efforts on more pressing issues like ensuring compatibility with Python >= 3.5, Django >= 1.10 and closing issues like #9 and #12.

Travis is not a something fancy @dhruvkb. It helps us debug things to a great extent which I've come across. Yes. My primary aim is concentrate on more pressing issues like ensuring compatibility. By using a CI software like Travis I'd just have to add a single line in the yml file which throws so many errors and therefore ease the debugging process. This is how things are generally done in big open source organisations and I feel these are some things we'll have to learn. :-)

#18 Added Travis CI. Let's see what can we do with that. :)


Add latest articles by this author to author page

Each author page has a "Latest" section at the end, listing the most recent (or all?) articles posted by this author.

Requires #23


Added flag to disable realm binding

Hey @hankjacobs
I've added a small bit of functionality which disables the VM bindings to the context realm which are used for instanceof and other methods as were added in your latest release.
Adding the flag VM_DEFAULT_REALM like so to the bindings will disable binding the VM realm to the parent node realm which instantiates the VM:
const bindings = { VM_DEFAULT_REALM: true }
const cw = new Cloudworker(`const a = new Object()`, { bindings })

When using the flag instanceof between the VM object a and the global Object protoype will equal false intentionally as the Object realms remain different.
I believe this flag is a crucial component which should be able to be used in my opinion as a number of packages including math.js and others break now when running within the latest version of Cloudworker.
I think we should not be modifying the VM context unless we give users the option to restore this context
I've added tests which you can see in this in my pull request.
I also added one to validate no-eval to reflect the state of Cloudflare Workers as I noticed this was also changed on the VM.
I'd appreciate it if you can merge this and release this ASAP as we're really needing this for Restt and our other projects within my team at work.
Thanks again for all your hard work keeping things up to date :)
(p.s. I won't be available to reply to any questions for the next few days as I'll be on holiday but would appreciate it if this is merged before then)

Hi @larkin-nz,
The goal of cloudworker is to match the behavior of Cloudflare Workers as best as possible. In the example you cited, a instanceof Object would return true within CF Workers. cloudworker, as it's currently implemented, matches this behavior. The flag you added would break this behavior.
I am curious what specifically breaks with math.js. Maybe there is another solution rather than disabling realm bindings and breaking CF worker compliant behavior.
I'm also hesitant to expose the concept of realms to developers. CF Workers don't surface this concept and I'd argue it's not relevant to the majority of users.
That being said, I do appreciate the test for no-eval :).

Hey @hankjacobs,
Cloudflare Worker bindings are currently only able to be Wasm or KV as it it.
When we're doing things with bindings in Cloudworker we naturally allow there to be another custom bindings which goes away from the spec but provides the right flexabilty for a stable development example.
For example, within Restt-CLI we use the bindings to bind a flag as to whether is running from Restt-CLI or from the production server, and this includes a variety of function hooks for debugging also which is very useful.
In the tests which we have currently in Cloudworker, we test whether an Object within a binding function (which has a scope different to the VM) in an instanceof Object which is within the global scope.
The prototype of say Object in the VM (running in the Cloudworker) is not actually the same as that of the Object of that outside the VM (the globally scoped process which started our Cloudworker) as our VM in naturally sandboxed.
I don`t believe that this actually has any real relevance to Cloudflare Workers as such because there are no functions as I understand within the current bindings which will change between realms as above and I see the purpose of those enforced bindings as moving away from spec.
Take the case where we don't bind this.Object = Object within the class Context we can prove these checks using the following:
// Create a context for testing
const context = new runtime.Context(() => {}, Symbol('factory'), {
  checkA (a) { return a instanceof Object },
  checkB (a, b) { return a instanceof b },
})

// The result will be `false` as `new Object()` is from a different realm to `Object`
const resultA = vm.runInNewContext('checkA(new Object())', context)

// The result will be `true` as `new Object()` is from the same realm `Object`
const resultB = vm.runInNewContext('checkB(new Object(), Object)', context)

// The result will be `true` as `new Object()` is from the same realm `Object`
const resultC = vm.runInNewContext('new Object() instanceof Object', context)

I feel that these bindings should not be made in Context as were made in the release prior as they aren't technically correct.
My other solution to this would be to have a key called unset which would enable the developer to unset a binding from the context which would also correct the problems in our case.
I spent a whole bunch of time working through the stack with math.js and it seemed to be a problem which would occur due to how the package typed-function works (https://www.npmjs.com/package/typed-function)
The package is pretty major and receives over 100k downloads a week so this must naturally cause problems for a number of packages outside math.js.
Let me know when you've had a think about it, but I think the best course of action if you don't want either of my solutions mentioned would be rolling back those bindings added in 0.1.0.
Cheers

This seems very specific to your use of cloudworker. The reason I added the code to handle objects coming from the runtime realm is that without it using instanceof against objects returned from any of the various methods that interact with the runtime (e.g. fetch) can fail (because the runtime code originated from a different realm). That goes against the behavior of CF Workers and is just a generally confusing failure because the fact there are different realms is purely an implementation detail.
That being said, have you considered running the Cloudworker portion of your package in a VM? That would run in it’s own realm and would allow you to do comparisons like you desire (assuming that it’s even possible — I haven’t tried myself).
I’ll give some thought as to how cloudworker could more generally solve this issue but I will not be reverting those changes as of now.
Now as far as math.js andtyped-function go, what specifically is the error. Could you please share an example and the failure in another issue? I’ll happily look into what it would take to fix that.

I see, that makes sense, have you considered just having these types passed into the scoped functions like how my example B worked above?
If you bound a property to the Context which stored a reference to all of the prototypes in the global realm such as Object and used these within the Fetch package I think this is a better option.
I'm just about to head out for a hike for 5 days so I'm not able to access my laptop to spin up a simple test case with math.js for you, but simply webpacking a script which only includes the statement import * as mathjs from 'mathjs'should throw the error when run in Cloudworker.
I'll think more about a custom VM but I'd prefer to stay with Cloudworker as much as possible.

Hey @hankjacobs, have you put any more thought into this?

@larkin-nz Turning this on made fetch() inside the container stop working for me.
TypeError: First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.

I do agree with your concerns about realm binding, though. I think we will want to find a different solution for external IO though fetch() and whatnot without actually binding all the types and objects from outside of the VM, perhaps facilitating external IO though a socket or some such. That would address this issue permanently without breaking other functionality. I'm going to be doing some work on this in the next week, I'll tag you if I come up with any designs.


Add copyright to sources

Closes #3

@grant Do we need to ensure copyright preambles are also generated for generated code?
See: examples/hello/bin/main.dart

@grant Do we need to ensure copyright preambles are also generated for generated code?
See: examples/hello/bin/main.dart

Yes ideally


Adding a log to Datadog before initialization seems to cause Datadog to drop log statements after initialization

Thanks for taking the time for reporting an issue!
Describe what happened
Include any error message or stack trace if available.
I haven't been able to get this into a reproducible project yet, but what seems to be happening is when a log statement is added to a configured Datadog logger before Datadog is initialized, no logs seem to report on Datadog after it has been properly initialized with that logger.
We have log statements throughout our application in init blocks of objects that are executed before our Application onCreate method where Datadog is initialized. When that is the case, I notice that no logs that go through that configured logger make their way to be viewable on the website. I would expect / be fine with logs added before Datadog is initialized to not appear, but it seems to corrupt the state of that logger in some way even after initialization.
However, other logs that are added via a separately configured Datadog logger don't seem to be impacted.
I have added a check that looks like
        if (Datadog.isInitialized().not()) {
            return
        }

in our logging module and that appears to fix the problem.
Steps to reproduce the issue:
Create a logger and add a log statement before Datadog is initialized
Try logging with that logger after Datadog is initialized
See no logs come through to the website
Describe what you expected:
I would expect that after Datadog has been initialized, logs would flow through as expected.
Additional context

Android OS version: Android 12
Device Model: Emulator / Pixel 3A
Datadog SDK version: 1.12.0
Versions of any other relevant dependencies (OkHttp, …):
Proguard configuration:
Gradle Plugins:

Hi @JosephRoskopf  and thanks for opening this issue. Indeed, this is a side effect of our architecture, but it's not a bug. When you create a logger, it will try to hook itself with some configured Datadog internal utilities. When you create a logger before the SDK is initialized, the logger won't find those utilities and will not be able to send logs to Datadog.
If you can, please try initializing your loggers lazily (you can do that in kotlin using by lazy delegated properties.
We're working on an overhaul and refactoring of our architecture that will prevent this from happening in the future.


REFAPP-289 headless consent for mock server

We use a new ENV HEADLESS_CONSENT=false to allow headless consent.
New test added and older tests refactored to remove repetition.

General comment:
It'd be good to keep refactoring changes in separate commits from feature changes - to ease reviewing.


Openstack 2024.1/edge rev 518 ( From Today ) : No bootstrap juju-controller

Bonjour,
Today's version created a bug. No possibility of deploying juju-controllers whereas with yesterday's version everything functions..
Thank you so much.
Moula

Hello @moula, this will be fixed by https://github.com/canonical/snap-openstack/pull/245

For future reference, the preferred place to open bugs is: https://bugs.launchpad.net/snap-openstack

#245 has been merged


Increase threshold for --flat-nodes

Latest testing shows using --flat-nodes for U.S. West (2.1. GB) was slower than --slim --drop --cache=5000 w/ 8 GB RAM available.  I have seen other places (NEED REFERENCE) mention 10 GB as cutoff, but my prior testing showed lower.... So much has changed w/ osm2pgsql and flex it's worth doing some testing to find the sweet spot.
https://github.com/rustprooflabs/pgosm-flex/issues/129#issuecomment-842640997
https://osm2pgsql-tuner.com/api/v1?system_ram_gb=8&osm_pbf_gb=2.1&append=False&pbf_filename=us-west-latest&pgosm_layer_set=run-all
Returns cmd:
osm2pgsql -d $PGOSM_CONN  --cache=0  --slim  --drop  --flat-nodes=/tmp/nodes  --output=flex --style=./run-all.lua  ~/pgosm-data/us-west-latest.osm.pbf

I bumped the recommendation to 8 GB and added the logic to always use when PBF > 30GB ( see be7ffae96a99673fd4820fffcb0ac21190309a1f).  Made easier to change (in config.py).  When future testing finding either of these breakpoints to be sub-optimal they can be opened as new issues.


investigate optimization of rule matching (May, 2024)

As shown in #2061, perhaps 70% of capa runtime is spent evaluating rule logic. That means, if we want to make capa run faster, improvements to the logic evaluation code may have a bigger impact than code analysis changes.
In this thread I'll record findings and ideas for performance enhancements. We can close out this issue when we feel we have a good handle on performance and whether its worthwhile to make changes to capa.

Here's a speedscope trace captured by py-spy when using capa with the BinExport2 backend against mimikatz. Using this backend removes a bunch of noise related to vivisect analysis, which isn't relevant to this thread, and isn't something we can easily improve.
profile-be2.speedscope.zip
For example, use the sandwich diagram to identify routines that take up a lot of runtime:

lots of time spent in instancecheck
5.5% of runtime is spent in __instancecheck__, including about 2.5% of total runtime  on the line here:

https://github.com/mandiant/capa/blob/824e8521845719d63d7ab06fb837f2bdbd951bf0/capa/features/common.py#L393
Here's whats happening: in order to evaluate a bytes feature at some scope, we enumerate all the features at the scope, using isinstance to find those that are bytes and then do a prefix match.
This is not good, because given that there are dozens to thousands of features at some scopes (like a large function), and we might look for multiple bytes features, we spend a lot of time scanning through all the features repeatedly.
Some things we could do to fix this:

collect all the bytes features once, and re-use this list when evaluating each bytes feature
store each "type" of feature in its own list, so that we can quickly find the features to evaluate

pre-filter strings, bytes based on whats found in the file
To avoid searching for strings/bytes that won't ever be found at a particular scope, we could first check that each string/bytes is present somewhere in the file.

prune rule logic using global features
Once the global features are known (arch, os, format, etc.), then prune logic from the rules that won't ever match. This way, the same global feature are not re-evaluated over and over again, for each instance of the scope.

@s-ff take a look at the research and discussion in this issue to get you thinking about our GSoC project. No action beyond reviewing (and posting any thoughts you have) is needed at this time, we'll discuss more in our upcoming meetings 😄 .

tighten rule pre-selection
In RuleSet we have a match routine that uses knowledge of the complete set of rules and to more efficiently match features. Essentially, it indexes all features across all the rules, and only attempts to match rules that share a feature with the given feature set. That is, if an instruction's feature set contains only the single feature api(CreateFile), then the matcher will only check rules that have that same feature. This saves quite a bit of computation, since most rules don't have the features found in small feature sets.
I think we can do even better, at least in some common scenarios, and save more time. Rather than indexing all features from all rules, we should pick and index the minimal set (ideally, one) of features from each rule that must be present for the rule to match. When we have multiple candidates, pick the feature that is probably most uncommon and therefore "selective".
For example, consider the rule:
- and:
  - api: CreateFile
  - number: 6789
  - mnemonic: mov

Today, anytime we encounter a feature set with any single one of those features, we evaluate the full rule.
Here, I propose that we only index one of the features (the "best, most selective one"), since it must be present for the full rule to match.
The intuition is that some features will be somewhat common, and if we index those, then we end up evaluating a lot more rules. If we only index features that are uncommon, then we're less like to have false positives in this pre-filtering step and save time.
I think mnemonic: mov is common and not selective. Same with small numbers and offsets. But APIs and strings are very selective, so we should prefer these when possible.
Note that for rules like the following, we have to pick a feature from each branch of the or. That's ok - we just want to index a minimal number of features.
- or:
  - and:
    - number: 1
    - number: 2
  - and:
    - offset: 3
    - offset 4

We should be able to use raw evaluation counts to demonstrate that this technique is working.

FeatureSet size distributions
From mimikatz using Ghidra BinExport2 backend. These plots show the distribution of sizes of FeatureSets by scope. In summary, instructions usually have less than 10 features,  basic blocks less than 20, and functions less than 100.
instruction

basic block

function

hash lookup common bytes length prefixes
Today, we match bytes by doing a prefix search against encountered bytes (up to 0x100 long). Since many sequences of bytes we search for have some structure (well, common length), like a GUID or cryptographic S-Box, we can optimize some of these searches by indexing the bytes by their prefix (for common lengths, like 8, 16, 32, and 64 bytes). Then, when the wanted bytes feature has this same length, we can do if feature in features rather than for bytes in features: if bytes.startswith(feature).
This can also help the rule logic planner, since it can pre-filter more rule when the hashable features are known.
The tradeoff is that we generate N (probably 4-5) more features per bytes feature.

hash lookup case insensitive strings
Today, we match case insensitive strings by invoking the regex matching engine. But, we have quite a few of these features in our rule set (409???). Like with bytes above, consider emitting lowercased strings as features, and matching case-insensitive strings via hash lookup.
The tradeoff is one additional feature emitted per string, and a bit more code complexity.
Again, I think this may be able to help the rule logic planner, since it can pre-filter more rules when the hashable features are known.

lots of time spent in instancecheck

5.5% of runtime is spent in __instancecheck__, including about 2.5% of total runtime on the line here:
https://github.com/mandiant/capa/blob/824e8521845719d63d7ab06fb837f2bdbd951bf0/capa/features/common.py#L393
Here's whats happening: in order to evaluate a bytes feature at some scope, we enumerate all the features at the scope, using isinstance to find those that are bytes and then do a prefix match.
This is not good, because given that there are dozens to thousands of features at some scopes (like a large function), and we might look for multiple bytes features, we spend a lot of time scanning through all the features repeatedly.
Some things we could do to fix this:
1. collect all the bytes features once, and re-use this list when evaluating each bytes feature

2. store each "type" of feature in its own list, so that we can quickly find the features to evaluate

We might be able to squeeze (1) in without any major breaking changes to demonstrate this strategy is worthwhile. But, its likely to make the code more complex.
With a bit more investigation, we might be able to show the larger effort of (2) is worthwhile. In particular, this problem only gets worse as we add more rules.
Today, FeatureSet looks like:
FeatureSet = Dict[Feature, Set[Address]]

or more concretely:
{
    API("CreateFile"): [0x401000, 0x401005],
    API("ExitProcess"): [0x40100A],
    String("foo"): [0x40100B],
    Mnemonic("mov"): [0x401000, ...]
   ...
}

When we have a rule that requires a feature, we can do a dict lookup to see if the feature is present, and where its found:
assert API("CreateFile") in features

We could move to a more explicit structure like:
@dataclass
class FeatureSet:
  api: Dict[str, List[Address]]
  string: Dict[str, List[Address]]
  mnemonic: Dict[str, List[Address]]
  number: Dict[int, List[Address]]
  ...

or more concretely:
features = FeatureSet(
  api={
    "CreateFile": [0x401000, 0x401005],
    "ExitProcess": [0x40100A],
  },
  string={
    "foo": [0x40100B],
  ],
  mnemonic={
    "mov": [0x401000, ...]
  }
)

The primary benefit is that features that don't match by hash lookup, like string/bytes/regex/substring, can be much more efficiently matched by only considering the candidates of the right type.
On the other hand, this would be yet another structure that has to be updated every time we introduce a new feature (uncommon).
It might be possible to do a hybrid, like:
@dataclass
class FeatureSet:
  bytes: Dict[bytes, Set[Address]]
  string: Dict[str, List[Address]]
  other: Dict[Feature, List[Address]]

Perhaps we should start with this hybrid to show that it works, and then do the full changes if there's a compelling reason.
Note that we can't use evaluation counts to demonstrate performance improvements here. Rather, we need to use benchmarking and wall clock time to show we're going in the right direction.
See also discussion below on making Bytes hashable, for common prefix lengths.

As you mentionned @williballenthin, this would require a redesign of FeatureSet. I imagine somthing like this:
from typing import Dict, Set, Union

FeatureType = Union[Bytes, Regex, String, Substring, Arch, OS, Format]
FeatureSet = Dict[str, Dict[FeatureType, Set[Address]]]

feature_set: FeatureSet = {
    "bytes": {},
    "regex": {},
    "string": {},
     ...
}

# Add a Bytes feature
bytes_feature = Bytes(b"\x90\x90")
feature_set["bytes"][bytes_feature] = {absolute(0x401000), absolute(0x402000)}

With this, we could avoid iterating over all features.
prune rule logic using global features

Once the global features are known (arch, os, format, etc.), then prune logic from the rules that won't ever match. This way, the same global feature are not re-evaluated over and over again, for each instance of the scope.
Edit:
I think it will be fine to prune logic away from the trees, but I don't think its easy to "pre-evaluate" global features. We would have to find a way to extend the logic tree nodes to cache a "pre-evaluated" result, which I think might be tricky/complex/fragile.

Here, do you mean that for example, if the extracted os feature for a binary is known to be windows, then any rules that require os: linux can be removed since they will never match? If yes, this is a must-have in my opinion.

candidate enhancements have been broken out into their own issues. closing this thread of investigation.

Collection of rules to identify capabilities within a program;   has  anyone ever experience capa times out? Also is  there a some configuration settings where only invoke the rules that match the file features ?

@Dextera0007 would you mind creating a new issue so that we can have a separate thread of conversation?


Using without theme

Can you make acceptable theme={null} and add classes on every nodes?
I want style by classic css way

@a-x- I just forked this to try implementing this.

I swithed to react-ui-tree recently...

Why was this closed? Seems like a valid request.

Doesn't
style={{}}
work?


Update kagome validating nodes stand with subdstrate node

Currently we have stand with four kagome validating nodes.
After #1080 is merged we should become more stable and therefore in order to check how kagome nodes behave on a long run with substrate nodes it makes sense to update the stand by replacing 2 kagome validators with substrate based nodes

we could use chainspec and keys from here
https://github.com/soramitsu/kagome/tree/master/examples/network_x4


Unhandled 'error' event

Hi guys.
Yesterday, I tried to make a simple steam-bot using your nodejs module. I just copied your code from the readme. And after the launch there was an error:
events.js:85
throw er; // Unhandled 'error' event
^
Error: Disconnected
at SteamClient._disconnected (/home/ubuntu/workspace/node_modules/steam/lib/steam_client.js:196:24)
at Connection.emit (events.js:107:17)
at TCP.close (net.js:485:12)
Here is code:
var Steam = require('steam');
var steamClient = new Steam.SteamClient();
var steamUser = new Steam.SteamUser(steamClient);
steamClient.connect();
steamClient.on('connected', function() {
steamUser.logOn({
account_name: 'rretard',
password: 'password'
});
});
steamClient.on('logOnResponse', function(e) {
console.log(e);
});
Can you help me? Thanks.

example.js is not a complete solution, you should read the docs too.

Connection closed by the server. Only emitted if the encryption handshake is complete, otherwise it will reconnect automatically. loggedOn is now false.

If you look at your 'logOnResponse' output you'll probably see why the logon failed, probably Steam Guard related.

EduardChernikh, have you found a solution?


Search - Spawn EACCES

VSCode Version: 1.11.2
OS Version: Linux gentoo 4.4.39-gentoo
no extensions (~/.vscode) and nuked ~/.config/Code

Steps to Reproduce:

Open Folder
Ctrl + Shift + F
type any phrase; hit Enter
Warn spawn EACCES pops up
No search results from the selected folder displayed

There is no spam in console apart from:

bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

Not sure why it can't spawn ripgrep, but you can probably work around it by setting "search.useRipgrep": false.

@roblourens Thanks! My search works with disabled ripgrep. I'm ok with legacy grep, I guess...

I'm also getting this repeatedly whenever opening php files.  I've disabled all extensions and tried setting search.useRipgrep: false.

@yuri1969 Is this still an issue in the latest version? Have you tried again with ripgrep?

@roblourens IIRC, I re-enabled the ripgrep in my VSCode a month or two ago. I can confirm that the ripgrep works in Version 1.17.1.

Thanks!

I've installed VS Code 1.18.0 (Gentoo Linux), and experienced this issue (for the first time). Maybe it is reintroduced again?
Doing a
chmod a+x /opt/vscode-1.18.0/resources/app/node_modules/vscode-ripgrep/bin/rg
fixed the problem.

I've just spent several hours on the same issue when trying to build my extension - the .vscode-test folder got populated with 1.18.0 and had throw a ripgrep-related EACCESS error.
1.17.2 and previous versions worked fine.
Can confirm the workaround does indeed work, thanks @uhrm - that saved much digging time.

Thanks it fixed my problem.

That fixed my problem too.

This fails to work in CI when running extension tests, however, as the test script that comes with vscode downloads vscode and immediately runs tests, leaving no place to chmod in between.
@yuri1969 , can the issue be reopened? This needs a fix on vscode side.

Currently, I have got no issue on my machine - the latest snapshot of Gentoo + VSCode 1.18.0 via jorgicio layman.
However, it seems the problem persists for another fellow Gentoo users. @tempit The issue has been reopened.

@yuri1969 - I opened a new issue, realizing our CI machine was ubuntu after all.
You can close this one if it no longer occurs. Thanks!

Closing as @tempit requested.


Show list of verified public interfaces in the keychain

There are many fake Namadillo links circulating on X.
Users are accustomed to web3 wallets wonder why the Keychain does not show balances and has no swap functionality.

Therefore I suggest to show a list of verified public interfaces in the Keychain.

There's some legal barriers with showing balances and linking to various interfaces in the extension itself, hence why it's not been implemented as it makes total sense.
A current proposed work around is to have the namada.help page linked at the bottom of the extension UI that can then show a list of verified interfaces

https://github.com/anoma/namada-interface/issues/1383

Closing because of the workaround.


[Bug]: Version 1.5.0 Not Available

NetBox access-list plugin version
v1.5.0
NetBox version
v3.7.1
Steps to Reproduce
Adding version 1.5.0 into the requirements list to install plugin on upgrade
Expected Behavior
verision 1.5.0 installs
Observed Behavior
Instead, I get this error stating v1.5.0 is not available
ERROR: Could not find a version that satisfies the requirement netbox-acls==1.5.0 (from versions: 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.2.2, 1.3.0)
ERROR: No matching distribution found for netbox-acls==1.5.0

You likely are using python3.9 1.3.0 is the last release with support for 3.9.  Upgrade your python and this should get resolved.

Do you have a handy guide on how best to upgrade python?

You could have deployed netbox in a number of ways I’m not savvy.  I love netbox-docker because it just handles that for me and I got fed up with keeping my system up to date.


.self used in copyFromRobject function

In cppInterfaces_nimbleFunction.R, the copyFromRobject function has
some references to .self, but it is not a method of a RefClass and
there is no local .self variable. Some other references to .self are
commented out...

This turns out to be a non-issue because it immediately follows a warning that the case in question is not currently working.  I promoted the warning to an error and commented out the rest of the clause, including the .self references.  It'll merge sometime soon.


narray_ext.rb:21:in `new': Argument required (ArgumentError)

Hello.
I have unfortunately not been able to get this to run:
I keep getting the error:
narray_ext.rb:21:in 'new': Argument required (ArgumentError)
I realize that the error is from narray but I believe that the gem should work out of the box, following the instructions in the Readme? I have installed GSL and the DevKit following the instructions from their page.
This is the program that generates the error:
require 'zombie_writer'

zombie = ZombieWriter::MachineLearning.new

zombie.add_string(content: "Lorem ipsum dolor sit amet.",
sourcetext: "Cicero's Great Speech On Ethics",
sourceurl: "http://example.com/lorem-ipsum")

array = zombie.generate_articles

And this is the stack trace:
Uncaught exception: Argument required
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/narray-<IP_ADDRESS>/narray/narray_ext.rb:21:in `new'
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/narray-<IP_ADDRESS>/narray/narray_ext.rb:21:in `cast'
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/kmeans-clusterer-0.11.4/lib/kmeans-clusterer.rb:13:in `ensure_matrix'
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/kmeans-clusterer-0.11.4/lib/kmeans-clusterer.rb:130:in `run'
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/zombie_writer-0.2.0/lib/zombie_writer.rb:80:in `generate_clusters'
	/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/zombie_writer-0.2.0/lib/zombie_writer.rb:56:in `generate_articles'
	/home/mikael/Documents/source/Zombie/main.rb:9:in `<top (required)>'
	/home/mikael/.rbenv/versions/2.4.1/bin/rdebug-ide:23:in `load'
	/home/mikael/.rbenv/versions/2.4.1/bin/rdebug-ide:23:in `<main>'
/home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/narray-<IP_ADDRESS>/narray/narray_ext.rb:21:in `new': Argument required (ArgumentError)
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/narray-<IP_ADDRESS>/narray/narray_ext.rb:21:in `cast'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/kmeans-clusterer-0.11.4/lib/kmeans-clusterer.rb:13:in `ensure_matrix'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/kmeans-clusterer-0.11.4/lib/kmeans-clusterer.rb:130:in `run'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/zombie_writer-0.2.0/lib/zombie_writer.rb:80:in `generate_clusters'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/zombie_writer-0.2.0/lib/zombie_writer.rb:56:in `generate_articles'
	from /home/mikael/Documents/source/Zombie/main.rb:9:in `<top (required)>'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ruby-debug-ide-0.6.0/lib/ruby-debug-ide.rb:88:in `debug_load'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ruby-debug-ide-0.6.0/lib/ruby-debug-ide.rb:88:in `debug_program'
	from /home/mikael/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide:130:in `<top (required)>'
	from /home/mikael/.rbenv/versions/2.4.1/bin/rdebug-ide:23:in `load'
	from /home/mikael/.rbenv/versions/2.4.1/bin/rdebug-ide:23:in `<main>'

Hope you can help me pinpoint what has gone wrong here? Keep up the good work.

I am able to replicate this error too. It seems that ZombieWriter is unable to gracefully handle scenarios where every input is the same quote. So this type of program would crash...
zombie = ZombieWriter::MachineLearning.new

zombie.add_string(content: "Lorem ipsum dolor sit amet.",
sourcetext: "Cicero's Great Speech On Ethics",
sourceurl: "http://example.com/lorem-ipsum")

zombie.add_string(content: "Lorem ipsum dolor sit amet.",
sourcetext: "Cicero's Great Speech On Ethics",
sourceurl: "http://example.com/lorem-ipsum")

array = zombie.generate_articles

p array

...while this type of program would pass.
zombie = ZombieWriter::MachineLearning.new

zombie.add_string(content: "Lorem ipsum dolor sit amet.",
sourcetext: "Cicero's Great Speech On Ethics",
sourceurl: "http://example.com/lorem-ipsum")

zombie.add_string(content: "Lorem ipsum dolors sit amet.",
sourcetext: "Cicero's Great Speech On Ethics",
sourceurl: "http://example.com/lorem-ipsum")

array = zombie.generate_articles

p array

I'll try to see whether it's possible to raise an exception to catch this edge case. For now, a workaround is to make sure to include at least one quote that is "unique" from all the other quotes.


enhancement: folder structure for test file

closing this issue since the basic test file is created.

basic test structure in the added file for testing

closing this issue as of now


3.1 Harvest Visualization and Patching Documentation

Changes

3.1 upgrade guide
Removed references to H1 and bandwidth
Two new sections in the User Manual

User Manual -> Target Instance Quality Review -> Harvest Analysis
User Manual -> Target Instance Quality Review -> Patching

Removed redundant tree view section

To build the docs, instructions are in the webcurator-docs readme

@hannakoppelaar have fixed the TODOs

@leefrank9527 if you're happy with it, I will merge this PR

@hannakoppelaar Hi Hanna, I'm reading and testing it. Will finish that soon.

@obrienben Got some comments for the doc:

The description below "Figure 27. Linked domain nodes": Star nodes are a single domain of URLs that also contain the primary seed of the crawl. In fact, both primary seed contained nodes and secondary seed contained nodes will be drew as star bodes.
Can add some description about the right click menu of the domain analysis table below "Figure 30. Domain Analysis", similar to "Figure 29. Node right-click menu".
Above "Figure 36. Filtering and search options", the filtering is available with the Path View as well. But it seems there is a performance problem for a big Path View for a broad filter.
"To reset the view and clear any fitlered or search results, click the reset button image108."" The icon image is not the latest one.
"Figure 52. A running patch in harvest results", "Figure 53. Patch Summary screen": Are they located in the opposite places?

Thanks @leefrank9527. I have made the relevant updates:

No change - there is already further description below Figure 27 detailing the star node and secondary seeds.
Updated to mention right-click menu for domain analysis table
Updated to mention that filtering is available in Crawler Path view also
Updated screenshots with latest icon
No change - to me the current descriptions match the screenshots

@hannakoppelaar  ready for you to merge


blob storage: copy blob encrypted with customer provided key

Is your feature request related to a problem? Please describe.
I'm trying to copy a blob that has been encrypted using a Customer Provided Key (CPK) into another blob. I'm trying to use the start_copy_from url method in BlobClient, but I cannot find a way to pass the key so that it is used. The method does not accept a cpk argument as others (such as upload_blob) do, nor do I see any other procedure to specify the key
Describe the solution you'd like
A way in which an encrypted blob could be copied to another blob. There might be different combinations:

the simplest one (the one I'm trying now) would be to be able to copy the blob while keeping the CPK key (in this scenario, only one key is needed)
a more complex one is for the key to be modified in the copy operation (i.e. one key for the source blob and another for the destination blob)
finally, a copy with encryption status change (i.e. source blob unencrypted, destination key encrypted, or the other way around) would be the most versatile

Describe alternatives you've considered
Unless I missed API methods, the only way I've seen to perform this copy is a download+upload, but if the blob is a big one, it would be inconvenient, since it requires two network transfers.

Thanks for your feedback, @xiafu-msft is this a possible scenario or should this be marked as feature-request?

Hi @paulovn
Thanks for reaching out. Have you taken a loot at upload_blob_from_url() api? I think that would help

Thanks for the suggestion. I've tried to use upload_blob_from_url(). It seems it can solve half of the problem -- namely how to write the blob so that it uses CPK-style encryption. But if I try to copy from a blob that is already encrypted, it fails, saying

The blob is encrypted with customer specified encryption, but it was not provided in the request.
Time:2021-04-10T10:16:14.7841320Z
ErrorCode:CannotVerifyCopySource
Error:None

so, while it can write encrypted files, it cannot read them, unless there is a way to encode the encryption parameter in the source_url argument string. Therefore, unless I'm mistaken, it can solve the unencrypted-to-encrypted copy, but not the encrypted-to-encrypted case, which is the one I'm most interested in.
For the time being, my workaround is to download the data, then upload it. Not very convenient, but it works.

Hi @paulovn
Sorry about the inconvenience, I think your workaround is what we are gonna suggest.
Currently blob service doesn't support decrypting a source blob during copy and re-encrypt it. We will keep it as a feature request.
Thanks again for reaching out!

Ok, understood, thanks.
What about the simplest procedure of copying the blob and keeping the encryption as is? (so, a bit by bit copy). This could enable a fast rename procedure for encrypted files (as a copy + delete), instead of the current download+upload workaround.

Hi @paulovn,
Were you using your own encryption key? I tried with encryption scope https://docs.microsoft.com/en-us/azure/storage/blobs/encryption-scope-manage?tabs=portal#create-an-encryption-scope and I can change encryption scope during upload.
For example I have a source blob encrypted using encryption_scope_1, when I call upload_blob_from_url(encryption_scope='encryption_scope_2') so the newly created blob is encrypted with encryption_scope_2

Hi, many thanks for the hint. I wasn't using upload_blob_from_url but start_copy_from_url, which as far as I can see, lacks encryption arguments. Didn't notice the former did have.
In our use case we are using customer-provided keys (CPK), so if I'm not mistaken this prevents us from using an encryption scope (since the key is not stored in an Azure Key Vault, and the encryption scope needs that, from what I see). However upload_blob_from_url also accepts a cpkargument, so we could use it. Although this won't work for the source blob if it is also encrypted with cpk (and hence cannot use encryption_scope_1).
Nevertheless we'll take a look to see if we can rewrap it somehow. Thanks again!

Hi @paulovn start_copy_from_url unfortunately does not support encryption scopes (https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob)
Let us know if you have any other questions! In the meantime we'll close this issue.


katex built withduktape failed to render vmatrix correctly

If I use katex with:
katex = { version = "0.4.5", default-features = false, features = ["duktape"] }

then, matrix expressions like
\begin{vmatrix}a&b\\c&d\end{vmatrix}

results in an error:
JsExecError("undefined not callable (property 'fill' of [object Array]): JavaScript runtime error (TypeError)")

See this issue on mdbook-katex for more.

There is no much I can do in term of issues in the JS engine.
The biggest problem of this crate is that there currently lacks of a well-maintained embedded JS engine (incl. its corresponding Rust binding). See #6 for more details.

What is your take of requiring the user to have other dependencies such as node or even katex CLI?

If you don't mind the dependency's size, V8 engine using rusty_v8 is the best approach. PR is welcomed to add this new backend.

Noted that node uses V8 engine internally.

I don't like the idea of embedding V8… It is quite an overkill for the simple functionality katex is supposed to provide.
What I was suggesting is that we call command npx katex or something like that.


offsetWidth

I get a message in Chrome (using jQuery) that offsetWidth is going to be deprecated this month (April 2016).
The Raphael.js code contains this parameter, is there a workaround that?
Will the library still work is the situation of that being deprecated?

Duplicated, please search for past issues next time.


Day of maintenance

updating severity to show this is current and
in progress.

As this is only a single char change that was agreed upon last week and is time critical I will merge this without review.