Does this Library Support Regression and/or Multiclass Classification

To Whom It May Concern,
I found Probatus via the following article, https://medium.com/ing-blog/open-sourcing-shaprfecv-improved-feature-selection-powered-by-shap-994fe7861560, when looking for a way to do RFE with SHAP values on tree-based models. However, I’m attempting to solve both regression and multiclass classification problems. After looking at the documentation, this library appears to only support binary classification. Am I reading the documentation correctly? If so, is this feature on the roadmap?
Thank you for your time and attention to this matter. I hope that this question finds you well and that you have a great rest of the week. God bless.
Very Respectfully,
CMobley7

Probatus will work for both regression and classification.
The probatus docs do recommend using LightGBM or XGBoost, so I don't know if all tree-based regression models will work, but conceptually any sklearn-like model should work. You can have a look at the models being tested in the tests.
I have personally run experiments with the LGBMRegressor without any issues on several occassions.
The docs aren't outdated, but there are currently only tests for binary classification.

@christophermadsen ,
Thank you for your quick and thorough response. I really appreciate it. I planned on using either XGBoost or LightGBM; so that works out perfectly.
Thanks again. Have a great rest of the week. God bless.
Very Respectfully,
CMobley7

The idea is we provide full support for binary classifiers for all features. Some features might work with multiclass or regression, especially ShapRFECV, and if they don't please do make an issue. It would be cool to actually add some unit tests for regressors and multiclass to that module, since is is most used one in the package. I made this issue to outline what needs to be done#169
However, some of the features e.g.  ShapModelInterpreter will not work with regression as they are right now, due to the fact that the feature measures AUC performance by default. In case there is interest in making other features work, please make an issue, and we see how this can be done.


Fix commit's time

Use the Committer's when as the CommitDate will be modified when the commit is being moved around in the git tree(e.g. being rebased on top of newer commits). The Author's when is created once and never touched again.
TL;DR It will use the committed time(which is "dynamic") instead of the creation time(which is "static")

Before(The top 3 commits were rebased on top of the last 2 commits):

After:

Github's commit list:

Codecov Report

Merging #18375 (975fb6c) into main (8472884) will decrease coverage by 7.53%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main   #18375      +/-   ##
==========================================
- Coverage   46.05%   38.51%   -7.54%
==========================================
  Files         840      835       -5
  Lines       92856    92565     -291
==========================================
- Hits        42762    35656    -7106
- Misses      43312    50645    +7333
+ Partials     6782     6264     -518

Impacted Files
Coverage Δ

modules/csv/csv.go
0.00% <0.00%> (-100.00%)
:arrow_down:

routers/utils/utils.go
0.00% <0.00%> (-100.00%)
:arrow_down:

services/webhook/general.go
0.00% <0.00%> (-95.69%)
:arrow_down:

modules/markup/markdown/meta.go
0.00% <0.00%> (-90.91%)
:arrow_down:

services/webhook/msteams.go
0.00% <0.00%> (-90.26%)
:arrow_down:

modules/auth/openid/discovery_cache.go
10.52% <0.00%> (-89.48%)
:arrow_down:

modules/util/truncate.go
10.71% <0.00%> (-89.29%)
:arrow_down:

models/userlist.go
0.00% <0.00%> (-88.89%)
:arrow_down:

services/webhook/feishu.go
0.00% <0.00%> (-85.72%)
:arrow_down:

modules/util/paginate.go
0.00% <0.00%> (-84.62%)
:arrow_down:

... and 215 more

Continue to review full report at Codecov.

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

What does Github do here? I'm fairly certain it uses Committer time.

git log will use date-order as in committer time and we have to use committer time for our last commit time for commits too.

What does Github do here? I'm fairly certain it uses Committer time.

Yup it does, this PR switch to that behaviors. It's only pure visual.

git log will use date-order as in committer time and we have to use committer time for our last commit time for commits too.

Will update the PR to include that(if it doesn't already)

What does Github do here? I'm fairly certain it uses Committer time.

Yup it does, this PR switch to that behaviors. It's only pure visual.

git log will use date-order as in committer time and we have to use committer time for our last commit time for commits too.

Will update the PR to include that(if it doesn't already)

Yeah it should always have been the committer date I was confused when I saw your PR because I thought you were changing it to Author not Committer!

Dammit, the latest commit is the actual PR(as in, what you see on the screenshots) the first commit is only for the latest commit bar when you view a repo.

Commiter maybe nil. We need a fallback to Author

This should solve the order of commits on https://try.gitea.io/silverwind/symlink-test/commits/branch/master, right?

This should solve the order of commits on https://try.gitea.io/silverwind/symlink-test/commits/branch/master, right?

From what I can see, it should be.

Commiter maybe nil. We need a fallback to Author

Fallback has been added.

Can confirm, it fixed https://try.gitea.io/silverwind/symlink-test/commits/branch/master.

@Gusted When sent backport, the lable backport/v1.16 should be still kept so that we can filter them.
And I think we should also backport this to v1.15.11 .


Create Plugin: Remove meta-extractor from package.json

What this PR does / why we need it:
Create plugin during scaffold or update adds the meta extractor package to a plugins dependencies even though it's not used. I noticed it whilst playing around with automating create-plugin updates via a workflow.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Report bug2

New qMR_reportBug:
send bugs via emails
auto catch in Guis

@mathieuboudreau use this PR ;)

@tanguyduval I tried it, and am having trouble getting the email to send. I modified the code with my own email:

<EMAIL_ADDRESS>        setpref('Internet','SMTP_Server','mail')
        txt = {}; for ii=1:size(txt2send,1), txt{ii} = txt2send(ii,:); end
        sendmail('(MYEMAIL)@gmail.com','qMRLab issue',sprintf('%s\n',txt{:}))

But am getting the following error:

Error using sendmail (line 169)
Unknown SMTP host: mail;
mail

Error in qMR_reportBug (line 36)
        sendmail('(MYEMAIL)@gmail.com','qMRLab issue',sprintf('%s\n',txt{:}))

Error in tryfunc (line 5)
    qMR_reportBug(err)

Error in addtryfunc>@(a,b)tryfunc(CB,a,b) (line 14)
                set(listobj(iuic),'Callback', @(a,b) tryfunc(CB, a, b))

Error while evaluating UIControl Callback.

Can you confirm that you tested it and got an email to send on your system? If so, I'll dig a bit deeper. From the forums I'm reading, they suggest setting the username and password for the "sender" in the MATLAB preferences, but this sounds like it's not an option for us.

The current qMRLab commit number, OS, and MATLAB version would also be great information to report.

i tried configuring email-based bug reports in the past but it become a nightmare, which is why we moved to Sentry. The issues that @mathieuboudreau has experienced, users (who are likely less experienced than Mathieu) will also experience them if we rely on their SMTP. So i am not sure this is the right way to go

Coverage decreased (-0.7%) to 40.732% when pulling be46634e80f009d26c99182876426ec9530f2622 on report_bug2 into 6a0f18b2728c1527abc3b33170830cc7c9c2a8e2 on master.

Hello hello, don't change the setpref. For @compagny.com you can use smtp serveur "mail" with no password ;)

Agreed to add os and Matlab version

@mathieuboudreau je ne vais pas avoir le temps de travailler la dessus les 2 prochaines semaines. Si tu veux prendre le lead sur cette branche pdt ce temps n'hésite pas ;)

Hello hello, don't change the setpref. For @compagny.com you can use smtp serveur "mail" with no password ;)

@tanguyduval I tried this first (by only changing), and it did not work for me on my OS (OSX 10.12.16) and MATLAB version (2017a).:
git diff:

mathieuboudreau@brassens:~/neuropoly/github/qMRLab$ git diff
diff --git a/src/Common/qMR_reportBug.m b/src/Common/qMR_reportBug.m
index 62cbfba..dd541a5 100644
--- a/src/Common/qMR_reportBug.m
+++ b/src/Common/qMR_reportBug.m
@@ -33,7 +33,7 @@ if any(~cellfun(@isempty,qmrexcep))
<EMAIL_ADDRESS>         setpref('Internet','SMTP_Server','mail')
         txt = {}; for ii=1:size(txt2send,1), txt{ii} = txt2send(ii,:); end
-        sendmail('qmrlab_developers@googlegroups.com','qMRLab issue',sprintf('%s\n',txt{:}))
+        sendmail('emb6150@gmail.com','qMRLab issue',sprintf('%s\n',txt{:}))
     else
         disp('not reporting error...')
     end
mathieuboudreau@brassens:~/neuropoly/github/qMRLab$

Matlab error after submitting a bug report:

Warning: qMRLab error detected
> In qMR_reportBug (line 13)
  In tryfunc (line 5)
  In addtryfunc>@(a,b)tryfunc(CB,a,b) (line 14)
Error using sendmail (line 169)
Unknown SMTP host: mail;
mail

Error in qMR_reportBug (line 36)
        sendmail('emb6150@gmail.com','qMRLab issue',sprintf('%s\n',txt{:}))

Error in tryfunc (line 5)
    qMR_reportBug(err)

Error in addtryfunc>@(a,b)tryfunc(CB,a,b) (line 14)
                set(listobj(iuic),'Callback', @(a,b) tryfunc(CB, a, b))

Error while evaluating UIControl Callback.

If this works for you, maybe you have preferences already set up that you aren't aware of? Otherwise, maybe this trick only works on Windows?

@mathieuboudreau je ne vais pas avoir le temps de travailler la dessus les 2 prochaines semaines. Si tu veux prendre le lead sur cette branche pdt ce temps n'hésite pas ;)

Ok – I don't think there's any rush. If I find the time I might poke at it some more, let me know if you want to video call to chat about it when your schedule clears up.

@mathieuboudreau that should work better now. Now using an smtp2go account.
We are limited to 16 mail per hour, which is a great limitation in fact ;)
In order to add bug report to an existing GUI.
Add the following lines at the end of the opening function:
% list all uicontrols
listobj = findobj(hObject,'-depth',100,'Type','UIControl');
% add try/catch to the callback
addtryfunc(listobj);

Best,
Tanguy

@mathieuboudreau I added a few lines to avoid dealing twice with the same error.
If an exception has already been caught by qMRLab, it just skips the bug report.... until the user restarts matlab or clear the variables (I use a persistent variable for known bugs).

I tried causing a bug, sent a report, but no email was sent/received to the qmrlab the google group email. Where to do we go to check the bug reports?

@mathieuboudreau I haven't tested sending to<EMAIL_ADDRESS>However I can see that your bugs report were succesfully sent and did not bounce...:

The admin of the google group should set the Post Permission to Public... or add<EMAIL_ADDRESS>as a member. Who is the admin??

@tanguyduval Ah ok! I didn't know about that dashboard. I don't know if it's a good idea to spam the google groups with bug reports – it would be better to grant us access to that dashboard if you can. That's how we also do it with Sentry.

Coverage decreased (-0.5%) to 43.227% when pulling 7089d161f8b4d965ffb0a3f3cceef2468005f0c4 on report_bug2 into 0e97155a6e310911e575ebd8f8870e5f2988a82b on master.

@mathieuboudreau shall we create an email account for qMRLab then?

@tanguyduval That might be a good approach to test out. I tried logging in to the other dashboard, and although I could see that the emails were sent/received, I never figured out how to open them,

@tanguyduval Ah ha, sorry about that. Sorry about the delay, I had my hands busy this Fall with the series of interactive notebooks, so not much extra time to doing core qMRLab dev. I will revisit this soon.

@mathieuboudreau @tanguyduval do you feel strongly about merging this feature?

@agahkarakuzu looks like you are not a big fan of sending errors by email??
I propose to report errors directly to GitHub using the web function. in my last commit, Issues are prefilled with

the error stack
the error message
Matlab version
qMRLab version

Best

My main worry about this branch, is annoyance by repetition. We need some kind of logger that if a specific error has been encountered before, the 1) the user doesn't see the error pop up again, and 2) the error isn't sent a second time. Because when I first tried testing this branch (albeit a long time ago), my workflow was interrupted a several times in a short duration with error pop ups, and I'd much rather (as a user) be completely unaware of them. That's why I like the Sentry style of error reporting; once the user initially accepts to error track, they never get interrupted or bothered by it, only a message in the terminal is given to say when an an error has been reported.
I'm afraid that if we automate errors to be sent as issues, we will get flooded with them (partly because not everything is perfect with the GUI, and secondly because of repetition in terms of how many times a user might encounter the same error, and how many users in total will encounter them).

@mathieuboudreau I added a logger a while ago to prevent repeated popups. Before, the log was stored in a persisent variable (lost in new Matlab session). I now 28a9083 store it in a Matlab pref using setpref.

Using the current version, users need to create a GitHub account and complete the GitHub issue page.

Great! @agahkarakuzu do you want to test out this branch (not a full review), i.e. do lots of stuff that will cause errors, and see how the branch feels in its current state (in terms of user experience)?

Let's put this to vote in the next meeting.

Might be interesting to look at what the conn toolbox is doing for bug
report.

I gave this one a try following Tanguy's example and I was able to reproduce it:

GitHub issue is a much better (and less noisy) approach then auto-emails. If this is the only intended output, then 💚 ✅.


Error 500 when opening bug details: Property or field 'appId' cannot be found

Next issue after #446 is fixed: When I want to look at one of the reported bugs, I get an error 500 with the following stack trace:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bugView' defined in file [/application/BOOT-INF/classes/com/faendir/acra/ui/view/bug/BugView.class]: Failed to instantiate [com.faendir.acra.ui.view.bug.BugView]: Constructor threw exception
        [...]
        at com.faendir.acra.ui.component.grid.LayoutPersistingFilterableGrid$addOnClickNavigation$1$1.invoke(LayoutPersistingFilterableGrid.kt:76) ~[classes/:2.0.0-beta04]
        [...]
Caused by: java.lang.IllegalArgumentException: Failed to evaluate expression 'returnObject == null || hasViewPermission(returnObject.appId)'
        [...]
        at com.faendir.acra.persistence.bug.BugRepository$$SpringCGLIB$$0.find-VSoB3VY(<generated>) ~[classes/:2.0.0-beta04]
        at com.faendir.acra.ui.view.bug.BugView.<init>(BugView.kt:46) ~[classes/:2.0.0-beta04]
        [...]
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'appId' cannot be found on object of type 'com.faendir.acra.persistence.bug.Bug' - maybe not public or not valid?
        [...]

similar issues (`Property or field 'appId' cannot be found) also occur on other actions, e.g. when trying to delete a version.

Okay so in a past release method security wasn't working at all. It seems now it is active but not updated for current usage patterns so I guess I gotta make a bigger check

I can report the same issue on v2.0.0-beta04.

I found a great testing library (https://github.com/mvysny/karibu-testing) to replace vaadin testbench (which I had to remove in the past because I did not have access to a license anymore).
Implementing tests for all pages will take a while, but the specific issues mentioned here are tested and fixed now.


added rice qtl data

Added the QTL file to the download yaml

The download and transform step ran just fine.


removed deprecated methods from api index

@oshai can you please delete the doc files themselves as well?
thanks


Integrate tree item picker with wizard

OS: Windows
Build Version: 20200228.9
Regression: Not a Regression
Repro Steps:

Click 'Deploy to Function App...' icon (Make sure there are more than one subscriptions).
Select one subscription.
Check whether there shows back icon in step 'Seletc Function App in Azure'.

Expect:
The back button shows well.
Actual:
No back button shows.

More Info:
This issue also reproduces for the  step after selecting function app.

Yeah this affects most command palette commands in all our extensions. We only use the wizard for things like "Create Function App", but could theoretically expand that to basically everything


Request to support ASLR in Prometheus

Proposal
Following UK TSR requirement provided by the UK Department for Digital, Culture, Media and Sport in conjunction with the UK NCSC
V.D.4: Address Space Layout Randomisation
The vendor only ships executable code that has been compiled using modern ASLR techniques.
Why it matters: Widely used to make it more difficult for an attacker to exploit any security issues.
Evaluation (Security Declaration):The Security Declaration states whether the vendor’s products use ASLR throughout their product.
Evaluation (Customer or third-party lab test): Verify that address space layer randomisation mitigations are enabled by (automatically) inspecting the product for this mitigation.
This is also applicable for other prometheus eco-system components : Node-exporter, pushgateway and alertmanager.

Hello,
Thanks for your pull request. It seems like we would need to compile prometheus in pie mode. One issue is that this is not compatible with all the architectures, and we try to avoid differences between arches.
Maybe other maintainers have different opinions? cc @SuperQ @bboreham

Yes, I don't think this is something we would want to enable. Based on my quick research, since we don't use CGO in Prometheus, there's not really much use of this here.
If you have your own local requirements, it's recommended to build your own binaries for deployments from verified sources.


Vault section only shows first vault

I noticed this on the code:
https://github.com/chelofinance/Xion-hackton/blob/a987795ef283cc8e637df85e2e1ac950c432e8db/frontend/pages/my-vaults.tsx#L44
Is there another section where the user can see all his vaults? if not we should be able to select the vault that we want to see

done


[UI]: Display filename after upload.

Signed-off-by: Md Shahbaz Alam<EMAIL_ADDRESS>Description
This PR fixes https://github.com/meshery/meshery/issues/5345
Notes for Reviewers
Video Illustration:
https://user-images.githubusercontent.com/69013647/167778682-50e83305-e271-48a3-a97f-e08749b9a4bf.mp4
Signed commits

[X] Yes, I signed my commits.

Good one, @SAEb-ai 👍
Will you have a look at the failing lint check?

Thanks @leecalcote !! I will try to resolve the failure of lint checks by tommorow!!

@leecalcote Please take a look. I have fixed the lint failures. Thanks!!

@leecalcote Can you please review this and merge this for me? Thanks!!

@SAEb-ai! 👏 😄


Get pods status from k8s api

We can use the /api/v1/watch/pods endpoint to get and watch the status events for the pods instead of using kubectl tool

You could assign this to me if there's no hurry to implement it.

sure @muhammednagy

Hi
For now, after first testing how we can deal with /api/v1/watch/pods to fetch the API streaming events
Here's the first approach and what do you think @muhammednagy @MohamedMSaeed @keroloswilliam
here is the reference for more details https://requests.readthedocs.io/en/master/user/advanced/#streaming-requests
import json
import requests

r = requests.get('http://<IP_ADDRESS>:8001/api/v1/watch/pods', stream=True)
lines = r.iter_lines(decode_unicode=True)
# Save the first line for later or just skip it
first_line = next(lines)
for line in lines:
    print(json.loads(line))


Speed up removeUnusedVertices

Only copy elements back a single time; speeds this up a bit.

Sounds great, do you have any before/after numbers?

@lilleyse do you want to review?

I found some issues while doing benchmarking, will fix and update

This is good to go now
1.0 Brainstem is a good test model for this since it has lots of unused vertices.
Benchmarking results:

master
branch

runtime
226747ms
56054 ms

About a 4x speedup

Wow that's great, I'll review this soon.

The code looks good and works with all the models I've tried.

Very nice, thanks @lasalvavida!


Rework configure for spack rocm arguments.

These are the changes that I need to support building with spack.
It allows configuring with rocm either all-in-one or by separate
spack packages, or a mixture.
  --with-rocm=path    (for all-in-one /opt/rocm)
  --with-rocm-hip     (for individual packages)
  --with-rocm-dbgapi
  --with-rocm-tracer

Be sure to test that it runs with a simple rocm program.  I've
replicated the configure/makefile actions as before, but I haven't
done a run test.
I suggest squashing the merge because some of the intermediate commits
will build but not run.

ping @mxz297 for review.  no rush.


feat: Added support for ESCU test-type

Jira reference to update image tag of workflow-engine-base: https://splunk.atlassian.net/browse/AQA-629

I have read the CLA Document and I hereby sign the CLA

I have read the Code of Conduct and I hereby accept the Terms

Please add a Jira reference to the description of the PR and I think we are good to go!

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


[question] how to get report by one resource group

Hi @mivano
Greetings.
How can I get the report for 1 resource group in the subscription? For example:
resource group name: my-new-resource-group
My command:
azure-cost -o json --query "[my-new-resource-group].[ResourceGroup, Cost]"

I don't understand how to use the query filter to get the data just for one resource group.

Also, do you think this filter is just for the json output format or could be used with the markdown format too?
Also, do you know if I can pass to the query filter a "tag" for getting only resources with a specific tag?

The idea with this is to get the report for a specific project that belongs to a specific resource group in the subscription.

The jmespath will only work for the json formatter, unfortunately.
Selecting a single resource group:
-o json --query "ByResourceGroup[?ResourceGroup == 'my-new-resource-group']"
Or to only get the specific fields:
-o json --query "ByResourceGroup[?ResourceGroup == 'my-new-resource-group'].[ResourceGroup, Cost]"
I still intend to add an additional filter parameter which is mapped to the API calls, but there are a lot of options, so I need to find the right way to do so. Then it will just retrieve what you want from the cost API. The query option filters on all the data it already retrieved.
So to answer your second question; no, not yet using the query option. With an explicit filter, that might be possible.
Track it here #20

Hi @mivano, the above is working great. Thanks!

Excellent!


fatal error: c10/cuda/CUDAGuard.h

when i try to install vision-0.5.0 on jetson nano,which was alleady installed Archiconda3,python3.6,torch1.4
then got an error as following:
jetbot-desktop:~/vision-0.5.0$ sudo python3 setup.py install
[sudo] password for jetbot:
fatal: not a git repository (or any of the parent directories): .git
Building wheel torchvision-0.5.0a0
running install
running bdist_egg
running egg_info
writing torchvision.egg-info/PKG-INFO
writing dependency_links to torchvision.egg-info/dependency_links.txt
writing requirements to torchvision.egg-info/requires.txt
writing top-level names to torchvision.egg-info/top_level.txt
reading manifest file 'torchvision.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching 'pycache' found under directory ''
warning: no previously-included files matching '.py[co]' found under directory ''
writing manifest file 'torchvision.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-aarch64/egg
running install_lib
running build_py
copying torchvision/version.py -> build/lib.linux-aarch64-3.6/torchvision
running build_ext
building 'torchvision._C' extension
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DWITH_CUDA -I/home/jetbot/vision-0.5.0/torchvision/csrc -I/usr/local/lib/python3.6/dist-packages/torch/lib/include -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/torch/csrc/api/include -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/TH -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/THC -I/usr/local/cuda/include -I/usr/include/python3.6m -c /home/jetbot/vision-0.5.0/torchvision/csrc/vision.cpp -o build/temp.linux-aarch64-3.6/home/jetbot/vision-0.5.0/torchvision/csrc/vision.o -O0 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_C -std=c++11
In file included from /home/jetbot/vision-0.5.0/torchvision/csrc/DeformConv.h:6:0,
from /home/jetbot/vision-0.5.0/torchvision/csrc/vision.cpp:8:
/home/jetbot/vision-0.5.0/torchvision/csrc/cuda/vision_cuda.h:2:10: fatal error: c10/cuda/CUDAGuard.h: No such file or directory
#include <c10/cuda/CUDAGuard.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
(nanodet) jetbot@jetbot-desktop:~/vision-0.5.0$ export CUDA_ROOT=/usr/local/cuda-10.0/
(nanodet) jetbot@jetbot-desktop:~/vision-0.5.0$ export PATH=$CUDA_ROOT:$CUDA_ROOT/bin:/usr/local/bin:$PATH
(nanodet) jetbot@jetbot-desktop:~/vision-0.5.0$ source ~/.bashrc
jetbot@jetbot-desktop:~/vision-0.5.0$ conda activate nanodet
(nanodet) jetbot@jetbot-desktop:~/vision-0.5.0$ sudo python3 setup.py install
fatal: not a git repository (or any of the parent directories): .git
Building wheel torchvision-0.5.0a0
running install
running bdist_egg
running egg_info
writing torchvision.egg-info/PKG-INFO
writing dependency_links to torchvision.egg-info/dependency_links.txt
writing requirements to torchvision.egg-info/requires.txt
writing top-level names to torchvision.egg-info/top_level.txt
reading manifest file 'torchvision.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching 'pycache' found under directory ''
warning: no previously-included files matching '.py[co]' found under directory ''
writing manifest file 'torchvision.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-aarch64/egg
running install_lib
running build_py
copying torchvision/version.py -> build/lib.linux-aarch64-3.6/torchvision
running build_ext
building 'torchvision._C' extension
aarch64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DWITH_CUDA -I/home/jetbot/vision-0.5.0/torchvision/csrc -I/usr/local/lib/python3.6/dist-packages/torch/lib/include -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/torch/csrc/api/include -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/TH -I/usr/local/lib/python3.6/dist-packages/torch/lib/include/THC -I/usr/local/cuda/include -I/usr/include/python3.6m -c /home/jetbot/vision-0.5.0/torchvision/csrc/vision.cpp -o build/temp.linux-aarch64-3.6/home/jetbot/vision-0.5.0/torchvision/csrc/vision.o -O0 -DTORCH_API_INCLUDE_EXTENSION_H -DTORCH_EXTENSION_NAME=_C -std=c++11
In file included from /home/jetbot/vision-0.5.0/torchvision/csrc/DeformConv.h:6:0,
from /home/jetbot/vision-0.5.0/torchvision/csrc/vision.cpp:8:
/home/jetbot/vision-0.5.0/torchvision/csrc/cuda/vision_cuda.h:2:10: fatal error: c10/cuda/CUDAGuard.h: No such file or directory
#include <c10/cuda/CUDAGuard.h>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
thank u to watch this, but how can i solve this?
appreciate your reply!

Hi,
This issue seems to arise from a version incompatibility between your PyTorch and torchvision version. I would ensure that you are indeed using the corresponding matching versions.
Also, if you can use latest PyTorch/torchvision, it would probably be better as well.
Given that this is probably a version incompatibility mismatch, I'm closing this issue, but let us know if you have further questions


batch requests

Hi,
Are you planning to support batch requests?
https://www.fullcontact.com/developer/docs/batch/
Thanks,
Brice

+1

Eventually, yes. However, the Batch API in its current form doesn't correctly support the ratelimiting headers and until that's corrected we hesitate to add support for it in the client libraries. I'll put a milestone on this, but it's blocked internally.

Thx anyway. We'll continue as is for now ;)

@bricemaurin @Xorlev   - https://github.com/stungeye/glutton_ratelimit


x/tools/gopls: restrict references to workspace packages

After the rewrite of references/rename, these operations became agnostic to the set of workspace packages. As such, finding references on e.g. fmt.Println will find references throughout the module graph, not just in workspace modules.
This is a change in behavior, may produce noisy references, and can lead to slow initial performance of queries, as we only pre-compute reference indexes for workspace packages.
We should filter these queries to workspace packages.

I don't think a rename operation should ever proceed with less than the complete scope of the identifier, as this would leave things in a bad state. If you really want to rename fmt.Println, it should touch every module in the module graph (and hopefully a good client will notice that you're attempting to modify readonly modules in the cache and abort before corrupting the cache or editing any other files). So I propose to leave out rename for now (as we discussed offline).


Fallback to InMemory tracker store if mongo / sql / redis is not reachable

If you defined an external tracker store, and the tracker store is not reachable, Rasa should automatically fallback to use the InmemoryTrackerStore. Otherwise this leads to weird behavior.

@akelad Should we just do this at the initial connection attempt or also when the tracker store crashes somewhere in between? As far as I remember this should also handle the second case.

Never mind, nearly through with the production code impl


Implement "Nuclear Bomb" quest marker similar to original game, or replace with something different

e.g. in Campaign Map 1, the second-leftmost coin was a "nuclear bomb" quest marker in the original game

Bomb Diffusers can be bought at the Vending Machine #101 ?

In "The Ladder", the second coin from the right at the bottom left is a bomb


Add SAF IDT configuration description

Signed-off-by: Vit Tomica<EMAIL_ADDRESS>Your checklist for this pull request
🚨Please review the guidelines for contributing to this repository.

[x] If the changes in this PR is part of the next future release, make this pull request against the docs-staging branch which will be published at the next release boundary. If the changes in this PR are part of the current release, use the default base branch, master. For more information about branches, see https://github.com/zowe/docs-site/tree/master#understanding-the-doc-branches.

[ ] If this PR relates to GitHub issues in docs-site or other repositories, please list in Description, prefixed with close, fix or resolve keywords.

Description (including links to related git issues)
Please describe your pull request.
:heart:Thank you!

@taban03  @janan07  @nannanli
Hello, can you take a look at the PR, please?


structure & formatting improvements

pure restructuring
no logic changes

I've extracted the significant changes, thank you!


Instructions to build vllm:cpu is missing in llm comps

https://github.com/opea-project/GenAIComps/tree/main/comps/llms#1-start-microservice-with-python-option-1
docker run -it --name vllm_service -p 8008:80 -e HF_TOKEN=${HUGGINGFACEHUB_API_TOKEN} -v ./data:/data vllm:cpu /bin/bash -c "cd / && export VLLM_CPU_KVCACHE_SPACE=40 && python3 -m vllm.entrypoints.openai.api_server --model ${your_hf_llm_model} --port 80"
vllm:cpu is not in docker hub, instruction missing to build from source

add the command
bash build_docker_vllm.sh


No nintendo switch

I removed the app id thing for Nintendo switch and made compiling to switch impossible.
I mean, why would you wanna try that?
This is probably unnecessary and probably might get closed, but whatever, idrc.

Lmao, w.i in the eShop 50$

Lmao, w.i in the eShop 50$

💀

it wont work unless it’s a .tad file plug the cord into your computer drag the tad file and bring it into the nitendo

it wont work unless it’s a .tad file plug the cord into your computer drag the tad file and bring it into the nitendo

that's the point of this PR, remove it from project.xml😐


use gitmoji + commitizen

Better commit messages!
https://gitmoji.dev adds clear emoji to visually categorize commit types. Commitizen ensures they are used.

Fixed by #96


Updated some specs to use rails routing helpers

Coverage remained the same at 99.352% when pulling 98f82dac87762b8c83470177cee2fdf186629401 on broder:spec_url_helpers into b7ad87cc8abc57a72e9f8b41979e39df50be3b5c on openfarmcc:master.

Coverage remained the same at 99.352% when pulling e64091739e7e39992921110324f203fa546078b6 on broder:spec_url_helpers into b7ad87cc8abc57a72e9f8b41979e39df50be3b5c on openfarmcc:master.


NPE in ORecordSerializerBinaryV0

There is the following code in ORecordSerializerBinaryV0
  private int writeEmbeddedMap(BytesContainer bytes, Map<Object, Object> map) {
    final int[] pos = new int[map.size()];
    int i = 0;
    Entry<Object, Object> values[] = new Entry[map.size()];
    final int fullPos = OVarIntSerializer.write(bytes, map.size());
    for (Entry<Object, Object> entry : map.entrySet()) {
      // TODO:check skip of complex types
      // FIXME: changed to support only string key on map
      OType type = OType.STRING;
      writeOType(bytes, bytes.alloc(1), type);
      writeString(bytes, entry.getKey().toString());
      pos[i] = bytes.alloc(OIntegerSerializer.INT_SIZE + 1);
      values[i] = entry;
      i++;
    }

The problem is that some Maps can contains nulls as keys. So there will be NPE here: entry.getKey().toString().

Hi @PhantomYdn
I see your point, that's easy to fix, we have just to define how should be encoded the null value, maybe a good idea is put the size of the key = -1 to say that is null. i've to double check anyway if is coherent whit the rest of specification.

Hi @PhantomYdn
I see your point, that's easy to fix, we have just to define how should be encoded the null value, maybe a good idea is put the size of the key = -1 to say that is null. i've to double check anyway if is coherent whit the rest of specification.

Yea - you can define as you wish: but during deserialization, I guess it should be transformed back to null. Right?
If it's not possible: I think that OrientDB should transform null into "" (empty string) key.

hi @PhantomYdn,
Doing some internal discussion we decided to not support null keys on maps, also because this will bring issue for some API like HTTP/JSON or third party drivers.
so i just added the proper exception in case of add of a key null in map
closing

In this case, imho, value should be checked at the same place where other validations. And some frameworks might serialize even before save() and its strange just fall down with exception on this stage.

hi @PhantomYdn,
It make sense add some check also at validation stage, i'll reopen the issue at lower priority to keep track

hi @PhantomYdn,
double checking the fix i did the exception go up in any case of set of a null value on a tracked map, this for me is more than enough.
Closing


Auto-starting magnet torrent download

If I use Catch with Transmission, and am using magnet torrents from ShowRSS, is there a way to make Transmission auto-start the download? I have unchecked "Display a window when opening a torrent file" in Transmission, but Transmission still displays a window prior to starting the download.
Also, again using magnets, will Catch tell Transmission where to save the completed file (e.g., in the folder for the show name and season)?

Dupe of #52, please refer to the discussion there and reopen if needed.


fix: invalid escape sequence

closes #26
closes #35

hi @chenrui333, do you know the status on getting this merged?

sorry about the wait. should be good now.


add get_user in backends

This failure  is "Connection reset by peer";

@todaychi Can you give a description of what this change provides, i.e. This brings the backend closer to how the default django backend functions. This would also be helpful information to add to the README in the backend section.
Also a test case or two would be very helpful.


error java.lang.ClassCastException : class java.net.Inet4Address cannot be cast to class java.lang.String

Context
We're bundling Jolokia to act as "easy" frontend for cassandra's JMX. Recently we've upgraded to:

Cassandra 4.1.6
OpenJDK Runtime Environment Temurin-11.0.24+8 (build 11.0.24+8)
jolokia 2.1.0

Observed behavior
In jolokia 2.1.0 we get the following error when executing a specific mbean request
$ curl http://<x>/jolokia/ -H'Content-Type: application/json' --data '{"type": "read", "mbean": "org.apache.cassandra.db:type=StorageService", "attribute": "Ownership"}'
{"error_type":"java.lang.ClassCastException","error":"java.lang.ClassCastException : class java.net.Inet4Address cannot be cast to class java.lang.String (java.net.Inet4Address and java.lang.String are in module java.base of loader 'bootstrap')","status":500}%

In jolokia 1.6.2 we got
$ curl http://<x>/jolokia/ -H'Content-Type: application/json' --data '{"type": "read", "mbean": "org.apache.cassandra.db:type=StorageService", "attribute": "Ownership"}'
{"request":{"mbean":"org.apache.cassandra.db:type=StorageService","attribute":"Ownership","type":"read"},"value":{"\/<node-ipv4>":0.075637005,"\/<another-ipv4>":0.074421},"timestamp":1724758741,"status":200}

Calling the JMX through the embedded sjk returns
$ nodetool sjk mx -b org.apache.cassandra.db:type=StorageService -f Ownership --get
org.apache.cassandra.db:type=StorageService
{/<node-ipv4>=0.081161, /<another-ipv4>=0.095873}

Steps to reproduce:

Build and launch the following Dockerfile

FROM cassandra:4.1.6
# Please provide the jar yourself :)
ADD jolokia-agent-jvm-2.1.0-javaagent.jar /opt/cassandra/lib/jolokia-agent-jvm-2.1.0-javaagent.jar
ENV JVM_EXTRA_OPTS="-javaagent:/opt/cassandra/lib/jolokia-agent-jvm-2.1.0-javaagent.jar=port=13000"

Wait until the node is up (you can check with the following command)

# still not ready
$ docker exec -it <container> bash -c '/opt/cassandra/bin/nodetool sjk mx -b org.apache.cassandra.db:type=StorageService -f Ownership --get'
org.apache.cassandra.db:type=StorageService
javax.management.RuntimeMBeanException: java.lang.RuntimeException: No nodes present in the cluster. Has this node finished starting up?

# ready
$ docker exec -it <container> bash -c '/opt/cassandra/bin/nodetool sjk mx -b org.apache.cassandra.db:type=StorageService -f Ownership --get'
org.apache.cassandra.db:type=StorageService
{/<IP_ADDRESS>=0.9999989}

Execute the following http request

$ docker exec -it <container> bash -c 'curl http://<IP_ADDRESS>:13000/jolokia/ -H"Content-Type: application/json" --data "{\"type\": \"read\", \"mbean\": \"org.apache.cassandra.db:type=StorageService\", \"attribute\": \"Ownership\"}"'

Many many thanks for the reproducer - I'm on it!
$ podman exec -ti lucid_roentgen bash -c 'curl http://<IP_ADDRESS>:13000/jolokia/ -H"Content-Type: application/json" --data "{\"type\": \"read\", \"mbean\": \"org.apache.cassandra.db:type=StorageService\", \"attribute\": \"Ownership\"}"'
{"error_type":"java.lang.ClassCastException","error":"java.lang.ClassCastException : class java.net.Inet4Address cannot be cast to class java.lang.String (java.net.Inet4Address and java.lang.String are in module java.base of loader 'bootstrap')","status":500}

BTW, @PereBal - I see it worked with Jolokia 1.6.2, but did you try with any Jolokia 2.0.x version?

I have a fix and it works:
$ podman exec -ti gifted_cohen bash -c 'curl http://<IP_ADDRESS>:13000/jolokia/ -H"Content-Type: application/json" --data "{\"type\": \"read\", \"mbean\": \"org.apache.cassandra.db:type=StorageService\", \"attribute\": \"Ownership\"}"'
{"request":{"mbean":"org.apache.cassandra.db:type=StorageService","attribute":"Ownership","type":"read"},"value":{"/<IP_ADDRESS>":0.999999},"status":200,"timestamp":1725435570}

Hey, apologies for going MIA, long holidays. Thanks a lot for the fix, will try to rollout the patch this week and ensure everything works.
A preliminary local test seems quite promising (as you already tested :smile: )
root@050618193f65:/# /opt/cassandra/bin/nodetool sjk mx -b org.apache.cassandra.db:type=StorageService -f Ownership --get
org.apache.cassandra.db:type=StorageService
{localhost/<IP_ADDRESS>=0.999999}
root@050618193f65:/# curl http://<IP_ADDRESS>:13000/jolokia/ -H"Content-Type: application/json" --data "{\"type\": \"read\", \"mbean\": \"org.apache.cassandra.db:type=StorageService\", \"attribute\": \"Ownership\"}"
{"request":{"mbean":"org.apache.cassandra.db:type=StorageService","attribute":"Ownership","type":"read"},"value":{"localhost/<IP_ADDRESS>":0.999999},"status":200,"timestamp":1727079597}
root@050618193f65:/#

Works like a charm. Thanks a lot for everything grgrzybek

You're welcome ;)


destructured requirements

Please describe the changes this PR makes and why it should be merged:
The way modules are required matches the rest of the code base
The events already emits EventEmitter so does not need to be required as:
require('events').EventEmitter
Other module requirements such as:
const Presence = require('./Presence').Presence;
are now:
const { Presence } = require('./Presence');
Semantic versioning classification:

[ ] This PR changes the library's interface (methods or parameters added)

[ ] This PR includes breaking changes (methods removed or renamed, parameters moved or removed)

[ ] This PR only includes non-code changes, like changes to documentation, README, etc.

Thanks for the PR 👍


label in topic page in nsqadmin to indicate if topic is order

A label in topic page, or topics list page to indicate if topic is order.

Done in #27


Fails to find needle when needle is prefixed with partial match

This doesn’t happen to affect my usage of buffer-indexof, but I discovered this while reading through the code. You can see the issue when running the following in the Node REPL:
var bufferIndexOf = require("buffer-indexof")
"aaba".indexOf("ab")  // --> 1
bufferIndexOf(new Buffer("aaba"), new Buffer("ab"))  // --> -1

I suppose the easiest thing to do would be to update the README to indicate that this implementation is only reliable for finding single-byte needles. :)

i think it should be good at finding other needles. thanks for the issue!

fixed! thanks for finding this.
published to npm @ version 1.0.0

not fixed! consider this example:
'aaaba'.indexOf('aaba') // --> 1
bufferIndexOf(new Buffer('aaaba'), new Buffer('aaba')) // --> -1

just looking at the complexity of the algorithm gives you a feeling it can't be correct.
let n = haystack.length, m = needle.length
the complexity of your algorithm is O(n) time and O(1) space while the complexity of advanced  string searching algorithms like Knuth–Morris–Pratt algorithm and Boyer–Moore  algorithm is O(n+m) time and O(m) space.
the problem is when you find a mismatch (at index 3 in this example) you reset the search from that index ignoring that the match could start in indexes already skipped in the partial match (1 and 2 in this example).
see String searching algorithm for more information.

thanks! feel free to make a pull request should be simple enough to reset the index appropriately.
otherwise ill get to it soon =)


Think about opening GitHub Discussions

This is really a great and useful tutorial. Congratulations!
I'm not sure, if this is the right way to reach out to you. Hopefully, it is.
I would like to propose activating the Discussion tab. Students could discuss topics and help each other. And Issues would be reserved for real issues and bugs.

Thanks for the suggestion! We're happy with the current process using issues.


Evalutaion of deploy/libraries/CEC Modules.csv

How does this file in produced and fitted and how does the following parameters are evaluated?
I_L_ref : float
    The light-generated current (or photocurrent) at reference
    conditions [A]
I_o_ref : float
    The dark or diode reverse saturation current at reference
    conditions [A]
R_s : float
    The series resistance at reference conditions, in ohms.
R_sh_ref : float
    The shunt resistance at reference conditions, in ohms.
a_ref : float
    The product of the usual diode ideality factor ``n`` (unitless),
    number of cells in series ``Ns``, and cell thermal voltage at
    reference conditions [V]
Adjust : float

@tommasogallingani the parameter values are determined by fitting the CEC model equations (described here) to the IV curve at STC and temperature coefficients. The idea is that CEC model requires only datasheet information to be fit. The procedure is available through PySAM (and pvlib, which it appears you may be using; see pvlib.ivtools.sdm.fit_cec_sam). The SAM team occasionally updates the CEC Modules.csv file by processing the database of modules found here; you can download the Excel file to see the full data set. There is some human quality control on the results.

@tommasogallingani, @cwhanse
The CEC Modules.csv file that we package with the SAM software is available here: https://github.com/NREL/SAM/tree/patch/deploy/libraries
The PySAM module SixParsolve is equivalent to the SSC module 6parsolve.
The inputs and outputs to SixParsolve are described here: https://nrel-pysam.readthedocs.io/en/main/modules/SixParsolve.html
The SSC source code for 6parsolve is here: https://github.com/NREL/ssc/blob/patch/ssc/cmod_6parsolve.cpp, with libraries here: https://github.com/NREL/ssc/tree/patch/shared

thanks @cpaulgilman and @cwhanse!
I saw that with respect to the database published by CEC, the pvlib.ivtools.sdm.fit_cec_sam function wants temperature coefficient in A/C and V/C and that the number of cells is series is actually the product of the CEC database columns N_s * N_p that represent not the series and parallel but rows and columns of the PV module.
Just to make sure that everything is correct, there's no need to correct the value in [unit]/K from [unit]/C since the delta of the two temperature scale is the same, is that correct?

@tommasogallingani I would recommend using correct units (°C) to avoid any potential problems. For SSC, the 6parsolve module converts temperature values from Celsius to Kelvin, for example here: https://github.com/NREL/ssc/blob/f8d64af67c238172afd4d6bac3f559f6c61341bf/shared/lib_cec6par.cpp#L167.


Folder reappearing after being deleted and crashes editor when clicked

Godot version
4.0.1stable
System information
Windows 11
Issue description
I had a project that previously contained multiple folders, scripts, scenes, etc. However, I decided to delete everything except for a MeshInstance3D node and its associated script in order to start something new from that. The MeshInstance3D node has a material_overwrite property set with a shader material that was originally located in one of the folders I deleted carelessly.
Now, whenever I try to save the scene, the previously deleted "shader" folder reappears in the project directory. However, when I try to click on the folder, the entire project freezes before eventually crashing.
I created a new project and attempted to attach a Shader Material, stored in a folder, to a MeshInstance3D node. I deleted the original folder that contained the shader material, and then saved the scene. The previously deleted folder did not reappear in the project directory, I was unable to reproduce the issue and I believe that the data stored in the scene is responsible for that behaviour. I have my own project folder that make it happen consistently which I'll join.
Steps to reproduce
Just import the project and once it is opened, press "ctrl + s" to save, that will make a folder named "Shader" appear, if you click on that folder everything will freeze before eventually crashing.
Minimal reproduction project
reproduction_project.zip

================================================================
CrashHandlerException: Program crashed
Engine version: Godot Engine v4.1.dev.custom_build<PHONE_NUMBER>a54bd481c1dec580da1ce4e7d0e58d)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[0] FileSystemDock::_get_imported_files (C:\godot_source\editor\filesystem_dock.cpp:3017)
[1] FileSystemDock::_update_import_dock (C:\godot_source\editor\filesystem_dock.cpp:3064)
[2] call_with_variant_args_helper<FileSystemDock> (C:\godot_source\core\variant\binder_common.h:298)
[3] call_with_variant_args_dv<FileSystemDock> (C:\godot_source\core\variant\binder_common.h:441)
[4] MethodBindT<FileSystemDock>::call (C:\godot_source\core\object\method_bind.h:326)
[5] Object::callp (C:\godot_source\core\object\object.cpp:734)
[6] Callable::callp (C:\godot_source\core\variant\callable.cpp:62)
[7] CallQueue::_call_function (C:\godot_source\core\object\message_queue.cpp:201)
[8] CallQueue::flush (C:\godot_source\core\object\message_queue.cpp:251)
[9] SceneTree::process (C:\godot_source\scene\main\scene_tree.cpp:463)
[10] Main::iteration (C:\godot_source\main\main.cpp:3175)
[11] OS_Windows::run (C:\godot_source\platform\windows\os_windows.cpp:1300)
[12] widechar_main (C:\godot_source\platform\windows\godot_windows.cpp:181)
[13] _main (C:\godot_source\platform\windows\godot_windows.cpp:203)
[14] main (C:\godot_source\platform\windows\godot_windows.cpp:217)
[15] WinMain (C:\godot_source\platform\windows\godot_windows.cpp:231)
[16] __scrt_common_main_seh (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
[17] <couldn't map PC to fn name>
-- END OF BACKTRACE --
================================================================

Weird. The scene lists the shader as an external dependency, but opening it does not show any error about missing files. You can even open the shader, but it's empty.

I wonder if this has anything to do with the unusual way Shader and ShaderInclude resources handle their loading, see some details in this PR description: https://github.com/godotengine/godot/pull/73975


add **kw to predict

closes #16
This gives users the ability to extend the predict method. To specifically authorize for Connect, something like the snippet below will work!
h = { 'Authorization': f'Key {api_key}' }
response = predict(data = data, endpoint = endpoint, headers=h)

Codecov Report

Merging #22 (6b31e8b) into main (78367a3) will decrease coverage by 0.47%.
The diff coverage is 42.85%.

@@            Coverage Diff             @@
##             main      #22      +/-   ##
==========================================
- Coverage   94.51%   94.03%   -0.48%
==========================================
  Files          26       26
  Lines         638      637       -1
==========================================
- Hits          603      599       -4
- Misses         35       38       +3

Impacted Files
Coverage Δ

vetiver/server.py
86.11% <42.85%> (-4.30%)
:arrow_down:

Continue to review full report at Codecov.

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


Add Russian translations for Reuseport

Type of Change
Added Russian translations for HTTP3 sentences. Please note that "reuseport" term should not be translated. Just like other terms like "OCSP DNS" because "reuseport" is commonly used tech term.

👋 Please could you combine your translation update PRs together into a single 'Russian translation updates' PR, instead of creating multiple very small PRs :)


change on string fails with expected result to have initially been "\xFF", but was "\xFF"

I have a weird behaviour similar reported here: #878, but I dont think it's exactly the same issue, as Im hitting this with Strings.
 require 'rspec'

class String
  def f
    self[0] = ((self[0].ord + 1) % 256).chr
  end
end

describe String do
  it "should increment the first character" do
    s = ?\x00 * 10
    255.times { s.f }
    expect { s.f }.to change {s[0]}.from("\xff").to("\x00")
  end
end

results in:
Failures:

  1) String should increment the first character
     Failure/Error: expect { s.f }.to change {s[0]}.from("\xff").to("\x00")
       expected result to have initially been "\xFF", but was "\xFF"
     # ./xx.rb:13:in `block (2 levels) in <top (required)>'

which is very weird as the 2 values look exactly the same.
my versions:
$ gem list | grep rspec
rspec (3.4.0)
rspec-core (3.4.1)
rspec-expectations (3.4.0)
rspec-mocks (3.4.1)
rspec-support (3.4.1)

I figured this is more of a weirdness of Strings than rspec. I don't understand what's happening here:
irb(main):011:0> a = ?\xfe
=> "þ"
irb(main):012:0> a = (a.ord + 1).chr
=> "\xFF"
irb(main):013:0> [a.class, "\xFF".class, a, a == "\xFF" ]
=> [String, String, "\xFF", false]

but it's clearly nothing to do with rspec. closing...

I think it's an encoding issue if that helps... When I do this in my enAU Mac:
2.3.0 :008 > a = ?\xfe
 => "\xFE"
2.3.0 :009 > a.class
 => String
2.3.0 :010 > a.chr
 => "\xFE"
2.3.0 :011 > a.chr.class
 => String
2.3.0 :012 > a == a.chr
 => true
2.3.0 :013 > b = (a.ord + 1).chr
ArgumentError: invalid byte sequence in UTF-8
	from (irb):13:in `ord'
	from (irb):13
	from /Users/jon/.rvm/rubies/ruby-2.3.0/bin/irb:11:in `<main>'


Cannot find a Resource with the Name/Key ExtendedSplashBackground

in Splash.xaml there is an error on :
An exception of type 'Windows.UI.Xaml.Markup.XamlParseException' occurred in mscorlib.ni.dll but was not handled in user code
WinRT information: Cannot find a Resource with the Name/Key ExtendedSplashBackground [Line: 11 Position: 11]
Additional information: The text associated with this error code could not be found.
Cannot find a Resource with the Name/Key ExtendedSplashBackground [Line: 11 Position: 11]
If there is a handler for this exception, the program may be safely continued.

Please get latest from GitHub and verify this error. I cannot reproduce it.


Shenzen broken-need to also bump Snapshot version

I see you downgraded the Shenzen version for fastlane. Now it creates a conflict with snapshot and I cannot bundle.
Bundler could not find compatible versions for gem "shenzhen":
  In snapshot (Gemfile.lock):
    shenzhen (0.14.1)

  In Gemfile:
    fastlane (>= 0) ruby depends on
      shenzhen (= 0.14.0) ruby

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Do you still run into this problem? Could you try running sudo gem update? Are you using rvm?

I'll close this issue for now, feel free to re-open if you run into any problems.


Ctrl + "=" and Ctrl + "-" to Zoom?

Luke,
I'm new to ST... Heard about it from your YouTube video...
I've been tweaking config.h to get it more to my liking, but I'm not understanding how the shortcut keys work and I haven't been able to find enough documentation to figure out the way new keyboard shortcuts are mapped...
173   { TERMMOD,              XK_Prior,       zoom,           {.f = +1} },
174   { TERMMOD,              XK_Next,        zoom,           {.f = -1} },

By default it seems to work with:
Ctrl + Shift + PageUp
Ctrl + Shift + PageDown
But how would I make this work with Ctrl + = and Ctrl + - is ST?
There is some good keysym documentation at:
https://wiki.archlinux.org/index.php/Xmodmap
Yet I still haven't figured out make the shortcut work...
Do I need to extend static Key key[] = to include the keycode that I want to use since there isn't already an XK_Equals and XK_Minus?
Inside of static Shortcut shortcuts[] = would it be something like?
  { ControlMask,          XK_Equals,       zoom,           {.f = +1} },
  { ControlMask,          XK_Minus,       zoom,           {.f = -1} },{

If so, would string would I define for XK_Equals and XK_Minus in static Key key[]?
Using xev I get:
37  Control_L
21  equal
37  Control_L
20  minus

Thanks for any help you can offer.

https://code.woboq.org/qt5/include/X11/keysymdef.h.html
Look at line 543 and below that. The keys you might want to know are defined there.

Thanks for the tip @CodingLappen
So I was able to make this work by only editing the static Shortcut shortcuts[] array, adding:
	{ ControlMask,          XK_equal,       zoom,           {.f = +1} },
	{ ControlMask,          XK_minus,       zoom,           {.f = -1} },

The shortcut key works well.

Thanks for the tip @CodingLappen
So I was able to make this work by only editing the static Shortcut shortcuts[] array, adding:
	{ ControlMask,          XK_equal,       zoom,           {.f = +1} },
	{ ControlMask,          XK_minus,       zoom,           {.f = -1} },

The shortcut key works well.

didn't work for me. no shortcut listed on that site works
any idea as to why?

I'm not sure if the base st code has changed so that perhaps it's no longer compatible.
Most recently I've been using kitty because I enjoy the GPU based rendering speed and ligature support, but I still love minimal tools like St.
I would start by trying to patch this into a st release from 2019 and see if it works. If it does, then probably the shortcut support in st has probably changed enough that the patch process is different.
If it doesn't work, it's probably something strange on your machine. Maybe your keyboard layout. Maybe an input method. Maybe your window manager.
I would start by narrowing down the possibilities.
On Sat, Feb 4, 2023, at 18:39, sonsais wrote:

Thanks for the tip @CodingLappen https://github.com/CodingLappen
So I was able to make this work by only editing the static Shortcut shortcuts[] array, adding:
	{ ControlMask,          XK_equal,       zoom,           {.f = +1} }, 	{ ControlMask,          XK_minus,       zoom,           {.f = -1} },
The shortcut key works well.

didn't work for me. no shortcut listed on that site works
any idea as to why?
—
Reply to this email directly, view it on GitHub https://github.com/LukeSmithxyz/st/issues/82#issuecomment-1416730350, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQOO76LUVVYGQEHCY4Y32DWVY5X3ANCNFSM4HNSED6Q.
You are receiving this because you modified the open/close state.Message ID: @.***>

@ryanerwin I have the same problem. I've tried others XK (like XK_greater/XK_less) without success. did you solve it?


Include new features in handbook instead of referencing "What's new".

While reading through the handbook I find something like this:
"From TypeScript 3.7 and onwards, you can use optional chaining to simplify working with nullable types." Where "optional chaining" links to the "What's new" page for version 3.7.
Why not include this in the handbook but put references - in the handbook - to other pages explaining "What's new"?
Please include all features of the language in the handbook. Actually I'd suggest to always update the handbook and only put references in the "What's new" page with a link to the relevant pages in the handbook.

We just haven't done the work yet

There's a tension here because ?. is purely a JS language feature. It affects code flow, but so does an if statement and we leave documenting that to MDN also.
I think even in the new handbook we probably wouldn't be documenting it in any depth. Perhaps there's a space to say what versions of ECMAScript TypeScript is up to, and what the proposals we've implemented look like, but the TS docs need to focus on the extra layer TS adds and not the many layers of JS underneath.


Lookup event emitter on scroll

an event is emitted from Lookup when user scrolls in the LookupMenu that contains the first and last indexes of visible elements
added a browser test

I am aware that the scroll event might need to be throttled. I am not sure about what is the best approach for doing this in vue. Should I use a setTimeout, is 300 a good delay? Making the event passive already improves the performance.

I am aware that the scroll event might need to be throttled.

That's great thinking! IMO maybe a debounce would work even better for this kind of task (for anyone interested in more context, see: https://redd.one/blog/debounce-vs-throttle).

I am not sure about what is the best approach for doing this in vue.

Whichever you chose, it would probably be best to make the chosen function reusable, or even rely on an external lib like lodash (I'm more of a less deps better approach, but it's really a personal choice in this case, as long as the library is maintained and well supported) see this stack overflow thread for deets.

I think we used a debounce in data bridge. I'll look it up

Here we are using lodash's debounce:
https://github.com/wikimedia/wikibase-vuejs-components/blob/master/src/components/ResizingTextField.vue

Will use debounce then. Thanks for the input @micgro42 and @itamargiv

:confetti_ball: Thank you, great work!! :confetti_ball:


#/ should redirect to #/dashboard

Repro(s)
http://marmelab.com/ng-admin-demo/#/ -> should redirect to http://marmelab.com/ng-admin-demo/#/dashboard
Instead it gets "Not Found" error.

Where does the /# url come from?

Bump, this url is normally not public.

Yes, it is not normally public.   I am not sure how I was able to get to the #/ hash, but I got there somehow.  Should this be intentional for ng-admin?
I think this problem should be delegate to the application using ng-admin.  For example, in ng-admin-demo, these codes do what I want to do.
// main.js
// after this line myApp.config(['$stateProvider', require('./segments/segmentsState')]);
// add this snippet

myApp.config(function($stateProvider, $urlRouterProvider) {
    // For any unmatched url, route to /dashboard
    $urlRouterProvider.otherwise("/dashboard");
});

Normally you should never get this url. I'm closing the issue, feel free to reopen it if you find a way to trigger a transition to this route from within the app.


Light sensor modules do not support multiple address modes

The light sensors currently used in this project, the TSL2550D, are hard wired to a single address.
Why? No idea. Makes no sense.
Anyway, I need to figure out whether we can get by with just one lux sensor or if a method by which two can be used is possible. The final alternative would be going back to square one and getting a new lux sensor.
One possible solution here is to multiplex the SDA line. This would allow us to stretch out the single address by consuming one or two GPIO pins on the raspberry pi. This should be relatively easy. The only possible issue is I2C clock stretching that I can see, but it seems unlikely that this will actually cause an issue.

Possible target for I2C multiplexing:
http://www.digikey.com/product-detail/en/TCA9543ADR/296-42064-2-ND/5246239
Another solution could be using GPIO and a FET to physically power lux sensors down completely.

The I2C multiplexer is ordered and mounted. I will test as soon as I get a chance.

I may be holding off on this for a while. In attempting to solder on the breakout pins to the surfboard modules, I accidentally burned out one of the chips because my soldering iron just isn't small enough to avoid heating the board. Rather than risk burning out the other I2C multiplexer or an ADC, I may just wait until I have access to a better soldering iron.

Finally got the i2c multiplexer up and running. It turns out the issue that I was having was a lack of a pull-up to VCC on the active low reset line, causing the module to hold in a reset state and not respond to detects.
I can now begin using the i2c multiplexer to add in multiple light sensors and - if I decide to reorder them - humidity sensors as well.

Closing as per commit 13c06d7a230f20efa5b15ccbbee2ae22d221d495
Aside from a lack of pullup resisters that are required to make the system reliable, everything appears to be working well in breadboard test/verification.


Update to minecraft 1.11

I've tested this and it seems to work fine.
I've also discovered that if you apply just -O1 optimizations to the debug build, it's actually useable without taking as long as a release build to finish.
For example, a -O3 (release) compilation takes 203 seconds, but  -O1 takes only 120 seconds and still maintains acceptable performance too.

Don't suppose you could fix the mac builds? I know it wasn't caused by your PR but it should be as simple as removing the sudo before any brew calls in .travis.yml. The Windows one I should be able to fix my end


Use Python class objects rather than raw URIs as arguments

Some methods require a URI for a PAML class as an argument.  For example:
primitive.add_output('measurements', 'http://bioprotocols.org/paml#SampleData')

A more pythonic and user-friendly method signature would be:
primitive.add_output('measurements', SampleData)

The URI corresponding to the Python class can then be looked up in the pySBOL3 parser's registry, which maps URIs to their corresponding Python classes.

Would it make sense to address these entities the way RDFLIB does namespaces ? So PAML.SampleData for example

What pySBOL3 does in this case, I believe, is that it will accept either. Can we do that here too?


Install rsync to be able to run 'oc rsync'

Filled separately from #75 to be able to run tests there.


Issue with certain videos and all playlists

Enter the url of the video or playlist: https://www.youtube.com/watch?v=hyfV0GBe18w&
Traceback (most recent call last):
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 297, in apply_descrambler
for format_item in formats
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 297, in
for format_item in formats
KeyError: 'url'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Documents\Programming\Python-YT-Downloader\Python-YT-Downloader\main.py", line 97, in
video = YouTube(url)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 92, in init
self.descramble()
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 132, in descramble
apply_descrambler(self.player_config_args, fmt)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 301, in apply_descrambler
parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 301, in
parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats)
KeyError: 'cipher'
I have this error when trying to create Youtube objects with certain videos
Enter the url of the video or playlist: https://www.youtube.com/playlist?list=PLUCHSyG1Fb9GE6bFQBWqZ0ewJdlEKbN7_
Traceback (most recent call last):
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 297, in apply_descrambler
for format_item in formats
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 297, in
for format_item in formats
KeyError: 'url'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Documents\Programming\Python-YT-Downloader\Python-YT-Downloader\main.py", line 95, in
video.append(YouTube(v))
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 92, in init
self.descramble()
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 132, in descramble
apply_descrambler(self.player_config_args, fmt)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 301, in apply_descrambler
parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 301, in
parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats)
KeyError: 'cipher'
A similar thing happens with playlists
Code:
# main.py

import subprocess
import sys
import get_pip
import re

def install(package):
    subprocess.call([sys.executable, "-m", "pip", "install", package])

try:
    from pytube import YouTube
    from pytube import Playlist
except:
    print('Import Error: PyTube3 not installed')
    print('Attempting to install PyTube3 using pip')
    try:
        import pip
        install('pytube3')
        print('PyTube3 has been installed')
    except:
        print('Import Error: pip not installed')
        print('Attempting to install pip')
        get_pip.main()
        print('Pip has been installed')
        try:
            print('Attempting to install PyTube3 using pip')
            import pip
            install('pytube3')
            print('PyTube3 has been installed')
        except:
            print('PyTube3 could not be installed')

from pytube import YouTube
from pytube import Playlist
import pytube

def convert_time(seconds: int):
    '''
    Returns a string of the time in the most optimal units
    Form: hours, minutes, seconds
    '''
    if seconds < 60:
        return str(seconds) + ' seconds'
    elif seconds < 3600:
        return str(seconds // 60) + ' minutes ' + str(seconds % 60) + ' seconds'
    else:
        return str(seconds // 3600) + ' hours ' + str(seconds // 60) + ' minutes ' + str(seconds % 60) + ' seconds'

#####################################
# EDIT THESE
#####################################
download_dir = 'C:\\Users\\leowa\\Music'
audio_itag = 140  # streams have a specific identifying tag, 140 is 128kbps audio only

while True:
    url = input('Enter the url of the video or playlist: ')
    print()
    video = None

    #try:
    if 'list' in url:
        video = []
        playlist = Playlist(url)
        playlist._video_regex = re.compile(r"\"url\":\"(/watch\?v=[\w-]*)")
        print(playlist.video_urls)
        for v in playlist.video_urls:
            video.append(YouTube(v))
    else:
        video = YouTube(url)
    #except:
    print("Couldn't find video at url:", url)

    if video is not None:
        # if its a playlist
        if str(type(video)) == "<class 'list'>":
            print("Videos :", len(video))
            for v in video:
                print("Title  :", v.title)
                print("Length :", convert_time(int(v.length)))
                print("Channel:", v.author)
                print()
        # if its just a video
        else:
            print("Title  : ", video.title)
            print("Length : ", convert_time(int(video.length)))
            print("Channel: ", video.author)
            print()

            # Uncomment this to see all stream types for a given video
            '''
            for s in video.streams:
                print(s)
            '''

            if input("Download this video (Y or N): ").lower() == 'y':
                dl = input("Download video or audio: ")
                while dl.lower() != 'video' and dl.lower() != 'audio':
                    dl = input("Enter video or audio as download options: ")
                    print()
                if dl.lower() == 'video':
                    res = input("Enter desired resolution (or high for highest avaliable): ")
                    if res.lower() == 'high':
                        stream = video.streams.get_highest_resolution()
                    else:
                        stream = video.stream.get_by_resolution(res)

                elif dl.lower() == 'audio':
                    stream = video.streams.get_by_itag(audio_itag)

                if stream is None:
                    print("Error: Unable to find given stream quality or resolution (make sure resolution is in the form xxxxp, example 1080p)")
                else:
                    print("Downloading...")
                    stream.download(output_path=download_dir, filename=video.title)
                    print("Download complete at", download_dir)

    print()

This issue is because of a change that YouTube made - the key cipher was renamed signatureCipher. Please see #631 for details.
You can install the patch that fixes this by doing:
pip install git+git://github.com/nficano/pytube.git@0f32241c89192b22de9cfbfee1303a1bcee18bd3
which is the latest patch that incorporates the fix from #631
Hope this helps!

Thanks! That fixed the problem of certain videos and the error for playlists, however, a new error has appeared for playlists:
Enter the url of the video or playlist: https://www.youtube.com/playlist?list=PLUCHSyG1Fb9FQomeNRuQaJaEvkMPABgwX
Traceback (most recent call last):
File "D:\Documents\Programming\Python-YT-Downloader\Python-YT-Downloader\main.py", line 92, in
for v in playlist.videos:
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\contrib\playlist.py", line 252, in videos
yield from (YouTube(url) for url in self.video_urls)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\contrib\playlist.py", line 252, in
yield from (YouTube(url) for url in self.video_urls)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 102, in init
self.prefetch()
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube_main_.py", line 203, in prefetch
self.js_url = extract.js_url(self.watch_html)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 154, in js_url
base_js = get_ytplayer_config(html)["assets"]["js"]
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\site-packages\pytube\extract.py", line 211, in get_ytplayer_config
return json.loads(yt_player_config)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\json_init_.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\leowa\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 882 (char 881)
Code is the same as original post, thanks in advance!

That's a new one :sweat_smile:  I've also encountered that particular error on occasion - seems to only happen with some videos. I have no way of knowing this, but I think this might be because of unescaped " characters somewhere in the JSON. Video descriptions and titles sometimes have double quotes - could be that whatever process generates the JSON fails to escape these sometimes. Would have to do more digging to get to the bottom of this, but I hope I've given you something to try at least  :smiley:

I've been doing some testing and it seems to happen almost randomly, sometimes a video will throw this error, sometimes it won't, I guess I'll have to ignore it for now. Thanks again!

Do you mean the same video will throw this error in one instance and not in the next? That's very strange. I'd say close this issue and open a new one describing what you've tried.

Thanks will do


Initial stab at workspace-or-crate repos

Add choice variable
Add post-gen hook to delete the "wrong" directory.

Motivation
Sometimes (most times, honestly), we're going to want a single-crate in a respository.
TODO

[ ] Fixup top-level README
[ ] Test

Current dependencies on/for this PR:

main

PR #15

PR #16

PR #17

PR #18

PR #21

PR #22   👈

This comment was auto-generated by Graphite.


🚀 Feature Request: Allow passing a custom fetch function to AI run calls

Describe the solution
Currently, any call of AI.run(...) shells out to that class's fetcher property, which is a readonly property of an AI instance.
In wrangler, the fetcher on your AI binding will call performApiFetch, an internal method that ultimately uses undici fetch under the hood, after applying some special sauce to authenticate against cloudflare (see: https://github.com/cloudflare/workers-sdk/blob/main/packages/wrangler/src/cfetch/internal.ts#L18C23-L18C38)
API Clients for OpenAI and Anthropic allow you to "bring your own fetch", when you instantiate your client. This can make it easy to do simple monitoring of calls to their services locally (inspecting payloads, and quickly getting insights into how long inference tasks took, especially in a longer chain).
Seeing as (I don't think?) we have an easy way in wrangler to hook into the creation of the AI bindings, I thought it could be nice to optionally accept a custom fetch function whenever you call AI.run.
This would require a few modifications. The AiOptions type would be extended to accept a fetch parameter, whose type signature simply matches the web standard fetch:
type AiOptions = {
  gateway?: GatewayOptions;
  prefix?: string;
  extraHeaders?: object;
  fetch?: typeof fetch;
};

Then, you could run
<EMAIL_ADDRESS>{ /* ... */ }, {
  fetch: myCustomFetchFn
})

A cursory look through the worker code makes me think this would require a few changes to the Ai class and it's Fetcher property, and then I'd assume the API would have to be implemented on workerd as well.
It's a little tricky, since the whole point of this change would be to still preserve all the magic that's happening in performApiRequest to attach proper auth, etc, to the request, but ultimately the internal cf performApiRequest method would use myCustomFetchFn instead of undici's fetch.
I realize that's not really a trivial undertaking, but I'd be happy to discuss it further and pick it up :) as I do think this would provide some monitoring flexibility, especially in situations where one is using a modified fetch function to, e.g., automatically produce spans for fetch calls.

It's worth noting that the implementation in Wrangler (passing through to performApiFetch()) will only run when using wrangler dev locally. For deployed workers in production a different codepath is used, and so it wouldn't be possible to override the fetch method used there. I think AI Gateway is probably a good fit for the monitoring use cases you mention: https://developers.cloudflare.com/ai-gateway/providers/workersai/#worker, have you given that a try?

@brettimus While providers like OpenAI just "fetch" their public endpoints, ai.run's fetch is very specific to our implementation and hard to expose like you're suggesting. Implementation aside, what is the problem that you're trying to solve?

Hey @brettimus , this is no pretty, but you should be able to mutate the fetch directly on env.AI like this:
const binding = env.AI;
binding.fetcher = {
    fetch: async (input: RequestInfo | URL, init?: RequestInit) => {
      return fetch("http://localhost:8787", init);
    },
};

Then calling binding.run(...) will use your custom fetcher, some typescript errors might pop up, but you can ignore them

yeah so this was a few weeks ago and i didn't take notes on what i tried, but i remember overriding the fetcher ultimately broke auth against cloudflare's services, so it was a nonstarter. but good shout!

Hey @brettimus , this is no pretty, but you should be able to mutate the fetch directly on env.AI like this:
const binding = env.AI;
binding.fetcher = {
    fetch: async (input: RequestInfo | URL, init?: RequestInit) => {
      return fetch("http://localhost:8787", init);
    },
};

Then calling binding.run(...) will use your custom fetcher, some typescript errors might pop up, but you can ignore them

@celso @G4brym — thanks for chiming in! i'm a library author, looking for ways to auto-instrument any network calls in Hono apps with opentelemetry traces. so that's my use case.
api gateway would solve this, indeed, but requires additional configuration / wiring things together, which is what i want to solve. (i'm trying for "out of the box traces with spans")
i can give the api gateway a scan to see how i'd work with opentelemetry. thanks again for the responses

wouldn't a simple proxy on the .run method work for you?
const originalRun = env.AI.run

const binding = env.AI;
binding.run = async (...args) => {
  // code before run
  const result = await originalRun(...args)
  // code after run

  return result
}

wouldn't a simple proxy on the .run method work for you?
const originalRun = env.AI.run

const binding = env.AI;
binding.run = async (...args) => {
  // code before run
  const result = await originalRun(...args)
  // code after run

  return result
}

Or even a standard js proxy: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy

yes so current approach we're using is proxying app.fetch for incoming/outgoing requests, to create a parent span.
then we create child spans for each network request that happens, by patching globalThis.fetch. that allows us to add semantic labels for the request/response. since the calls via the cf ai binding are ultimately http requests, it'd be nice to treat them as such. then we get a lot of our attribute serialization for free.
proxying the AI binding itself is certainly a good option, though, and probably the route we'll take at this point!

i'll close this issue as it doesn't seem like a good use of time, and there are clearly workarounds!


Advanced Mapping: Connect Fields & Objects

https://powerofus.force.com/s/article/NPSP-Map-Using-Advanced-Mapping
https://docs.google.com/document/d/1DPsHdo2GUTfmCGWHH-eaCjcoHNNCK8Q5CgrfYlqGHYg/edit?usp=sharing
#85  is turning it on (maybe we can combine?)

@Billflorio Might not want to combine this with #85; this video might get a bit meaty depending on how much you want to show about adding fields on the staging NPSP Data Import and target objects.
For this video, I recommend this general structure:

Overview of steps for customizing
Quick peek at target object and fields
Quick peek at staging (NPSP Data Import) object fields
Connect fields on an out-of-the-box Object Group like Contact1.

Spencer is working on this

Reviewed and rewrote a significant amount of it to simplify and clarify.    Could use a secondary peer reviewer


Add unit and regression tests

Is it ok to do regression tests for now? I've spent some time with doctest with Godot Engine. Not sure how Maya testing works.

Sure. I think the only way to do regression testing with Maya, is by launching Maya from the command line, letting it execute an exporter script, and check for regressions in the output...


Add Fallback to Codepagex (pure Elixir) when iconv (NIF) is unavailable

Let me elaborate a little. When the user has a problematic build toolchain, and cannot build NIFs, or is inside a docker container that has no compiler, at least there is some minimal support via Codepagex, instead of MimeMail crashing the mix run, preventing the whole app from starting up. When Codepagex matures further (maintainer currently looking to optimize speed), it would be the main module to use for char set conversion, because NIFs are evil (they slow down the BEAM VM scheduler).

We must not be narrow minded. There are many more environments where Elixir run that we might not be aware of. For example, the Nerves Elixir project uses it for embedded chipsets. The cross-compiler for the chipset might be difficult to setup or to obtain officially. Also hardware limitations are everywhere. Compiling anything on the 9-dollar C.H.I.P. computer with is insanity. @awetzel

Actually I think the iconv nif will always be much more efficient than the Elixir version, so in an embedded env, the cross compiled version will be much more efficient but more difficult to compile.
iconv is a rock solid library used by so many project that it is reliable to use it as a Nif. Then the use case in mailibex : convert ASCII with encoded special chars bodies to utf8 elixir binary is bounded (to the size of a text content of a mail, often way < 1MB and so <1ms with most modern CPUs, even embeded) http://erlang.org/doc/man/erl_nif.html#lengthy_work
I actually am a Nerves user (but not with mailibex specifically), and Nerves can be used as a cross compilation helper (along with a cross-compiled package management) which make the build possible. So if the compiler use CC CFLAGS environment variable or make case with the CROSSCOMPILE env (set by nerves) then it should be easily cross compiled with nerves.
Still :) I agree an Elixir implementation would be better since the use of iconv here was not for perf but because there was no alternative in elixir/erlang when I did it.
Also even if making a nif for encoding conversion (and so make a single erlang reduction for each body decoding) is usable in the "normal" case, it make a DDOS attack really easy for servers open on the internet : you just have to send a mail with a 1GB text body Latin1 encoded in order to break the erlang VM.
So thank you for the PR :)

Absolutely agree with the Denial of service part.
On Wednesday, 20 July 2016, Arnaud Wetzel<EMAIL_ADDRESS>wrote:

Merged #9 https://github.com/awetzel/mailibex/pull/9.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/awetzel/mailibex/pull/9#event-728017278, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAgK_W56-5cWrC1lhh9Wa4Rd3c6Sl5iWks5qXSLFgaJpZM4JN-sh
.

I pushed it yesterdya to hex.pm as 0.1.1 version.


Request parameters, lead to an incorrecty generated cURL request

Version: 2.9.2 (latest)
Kind: Bug report
Hey,
I think I've found a bug in the generation of the curl request, when clicking on 'Try it out'.
I've got following endpoint:
@RequestMapping(method = RequestMethod.GET, path = "/ranking/country", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Returns a ranking of the top countries with the most sensors")
public List<RankingItemCountry> getRankingByCountry(
        @RequestParam(defaultValue = "10") int items
) throws RankingDataException {
    if(items < 1) throw new RankingDataException(ErrorCodeUtils.INVALID_ITEMS_NUMBER);
    return sensorRepository.getRankingByCountry(items);
}

On the UI page it looks like this:

Look at the generated curl request. It is wrong isn't it?
The expected request should look like this:
https://<api-url>.com/ranking/city?items=2
This results in a 404 response code.
I would appreciate, if it can be fixed.
Thanks for your awesome implementation!
Marc

Hi, @marcauberer . It look like, that you turned on "urlTemplating" feature.

Hi,
you're right. If I disable it, the request url is generated correctly.
Just for education purposes: What is the "urlTemplating" setting doing?

If you have two @RequestMappings with same url but different @RequestParam, with enabled urlTempkating SpringFox will generate two endpoints. Otherwise only one,the second mapping will be lost. But unfortunately, Swagger-UI doesn't support that feature. So, it won't be able to generate correct curl request.
More about feature https://tools.ietf.org/html/rfc6570

Ok, thank you! I already wondered, why I added this to my Docket ...
I also need to apply your behaviour of having two seperate endpoints with different @RequestParam.
Can I somehow achieve both things together?

I think, you can declare two Docker beans, one with enabled url templating and other one with disabled. Then by setting appropriate path selector for each Docker, you can distinguish controllers, which you want add to Docker with enabled feature.

Can I also distinguish by mapping and not only by the controller?

I have two mappings with the same parameters. One returns the values in a normal way and the other mapping converts the result to a dto.

Yes,  you can also distinguish by mapping.

Im guessing this is answered. Closing this issue.

add @ApiImplicitParam may solve your problem, like this:
@RequestMapping(method = RequestMethod.GET, path = "/ranking/country", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiImplicitParam(name = "items", value = "items", dataType = "int", paramType = "param")
@ApiOperation(value = "Returns a ranking of the top countries with the most sensors")
public List<RankingItemCountry> getRankingByCountry(
        @RequestParam(defaultValue = "10") int items
) throws RankingDataException {
    if(items < 1) throw new RankingDataException(ErrorCodeUtils.INVALID_ITEMS_NUMBER);
    return sensorRepository.getRankingByCountry(items);
}


Add dedicated class based implementations for Append and Prepend.

Here is my attempt to optimize the Append and Prepend operators. Please review it carefully, I'm not sure if I got the handling of the IDisposables right.

One thing to consider is that Append invites the following pattern:
IObservable<int> someSource = Observable.Return(0);
for (int i = 1; i < 1000; i++) {
   someSource = someSource.Append(i);
}

someSource.Subscribe(Console.WriteLine);

Does this still work with your modifications?

It is tested for three consequtive Appends in Append_Many_Scheduler , but I haven't added any optimizations as it is done in CoreFX for Enumerable.Append, i.e., merging consequtive operators to one, instead of using the naive O(n²) implementation. I can't even say if it becomes quadratic for observables or not.

TailRecursiveSink in Concat flattens out the deep structure so it is not a problem there. When this PR is merged, I can add the changes so that a chain of append is coalesced into one Concat(source, items).

We could go the same route, as the corefx team has done it for the enumerable counter part [1], to optimize consecutive Appends and Prepends. That'd be:

Collect all appends and prepends in an AppendPrependObservable class
For the observing part: a sink that consist roughly of a IdentitySink that has a ToObservable.Sink starting part and a ToObservable.Sink ending part.

If we do that or anything else in that direction, we should propably skip the extra scheduling of the OnCompleted, at least between two Appends/Prepends.
I can do that, but that'd take some time.
[1] https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/AppendPrepend.cs

It is certainly more interesting and challenging doing this type of "operator fusion". I leave it up to you if you want to tackle it.

I'd give it a try than, if that's ok for @danielcweber as well.

Sure, go ahead.

Looks good. Is there still something missing to make the WIP go away?

Not really. I first thought I put the optimizations, I'm working on, into this PR. But I think it is a good point to merge. I'll put the next commits in a new PR.

@akarnokd now the stacktrace should be much smaller, hopefully. 😄

@danielcweber, I changed my mind and put the changes into this PR. Let me know if I can help you during the review.

Unfortunately, I get 4 failing tests with NullReferenceExceptions locally:
Append_Many, Append_Many_Scheduler, Append_Many_Take, Append_Many_Take_Scheduler.

Sorry, I was pretty sure that I did had run all tests the day before. I'll fix that.

Man, in that commit was nearly everything wrong that could go wrong, sorry for that. I hope it's now ok. At least all tests pass. I changed the class to be a struct like you did in #644.


Support AutoLayout/cassowary constraints

Add support for Apple-style Autolayout / cassowary constraints.
The support shall be implemented as a LayoutHelper function and is not part of the core.
Additionally, layout-literals can be used to set constraints using a visual language:
https://developer.apple.com/Library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/VisualFormatLanguage/VisualFormatLanguage.html
var layoutController = new LayoutController({
  layout: {
    autoLayout: [
      'button(>=50)',
      '|-[find]-[findNext]-[findField(>=20)]-|'
    ]
  }.
  dataSource: ...
});

+1 this would be the best thing to happen to famo.us

Here's a javascript implementation of cassowary constraints. Doesn't use famo.us. Made from scratch.
https://github.com/iamralpht/slalom

Nice!

It would be great if someone else than me could make a start with this. I will support/help in any way I can.

+1

I've begun work on this feature. It will be supported on famo.us v0.3.x through famous-flex, and also on mixed mode.
It is still work in progress, but documentation should follow soon:
https://github.com/IjzerenHein/autolayout.js
https://rawgit.com/IjzerenHein/visualformat-editor/master/dist/index.html

Hi guys, a quick note on this. I've been hard at work bringing autolayout and the visual format language to famo.us. Because the standard Visual Format Language prefers good notation over completeness of expressibility, I've had to create a extended visual format (EVFL) notation, which is a superset of VFL. It contains z-ordering, view stacking, and much more useful features you'll need doing layouts with famo.us.
You can read about it here: https://github.com/IjzerenHein/autolayout.js#extended-visual-format-language-evfl
I will be releasing this as part of famous-flex soon, but if you want to get started today, this is how you can do it:

Include autolayout.js in your project

Include this function in your project:
var AutoLayout = require('autolayout.js');

function vflToLayout(visualFormat, options) {
    var view = new AutoLayout.View(options);
    try {
        var constraints = AutoLayout.VisualFormat.parse(visualFormat, {extended: true, strict: false});
        view.addConstraints(constraints);
        return function(context) {
            view.setSize(context.size[0], context.size[1]);
            var subView;
            for (var key in view.subViews) {
                if (key.indexOf('_') !== 0) {
                    subView = view.subViews[key];
                    context.set(subView.name, {
                        size: [subView.width, subView.height],
                        translate: [subView.left, subView.top, subView.zIndex * 5]
                    });
                }
            }
        };
    }
    catch (err) {
        console.log(err); //eslint-disable-line no-console
    }
}

You can now use the vfl with a LayoutController, like this:
var layoutController = new LayoutController({
    layout: vflToLayout([
       '|-[row:[child(==child2/2)]-[child2]]-|',
       'V:|-[row]-|'
    ]),
    ...
});

Or when you're using ES6, the back-tick symbol (template strings) makes it really easy to cut & paste layouts between the Visual Format Editor and your code:
var layoutController = new LayoutController({
    layout: vflToLayout(`
|-[row:[child(==child2/2)]-[child2]]-|
V:|-[row]-|
    `),
    ...
});

You can even decorate the VFL with meta info, which the Visual Format Editor then renders accordingly. This can be useful if you have lots of views, and colouring them or setting the shape makes it easier to edit.
//viewport aspect-ratio:3/1 max-height:300
//colors red:#FF0000 green:#00FF00 blue:#0000FF
//shapes red:circle green:circle blue:circle
H:|-[row:[red(green,blue)]-[green]-[blue]]-|
V:|[row]|

View this RGB example online

Hi, I've officially released autolayout for famo.us v0.3. Mixed mode integration will follow in the near future:
https://github.com/IjzerenHein/famous-autolayout

+1 for the Famous Engine integration

I've got it up & running, should be real soon now.

Alright, mixed mode is now supported through the AutoLayoutController class :)
https://github.com/IjzerenHein/famous-autolayout

This is terrific!  Thanks for the great work Hein


[Persistence] Adds Save and Load functionality to TreeStore

Description
Adds save and load functionality to the TreeStore.
This PR makes the TreeStore an Interruptable module. This is necessary because the Persistence module needs to be able to tell the TreeStore to relinquish its connection to the nodeStores which are backed by BadgerDB.
Issue
Related to #568
Type of change
Please mark the relevant option(s):

[x] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[ ] Major breaking change
[ ] Documentation
[ ] Other

List of changes

Adds save and load functionality for loading a worldState from file directories.

Testing

[x] make develop_test; if any code changes were made
[ ] make test_e2e on k8s LocalNet; if any code changes were made
[ ] e2e-devnet-test passes tests on DevNet; if any code was changed
[ ] Docker Compose LocalNet; if any major functionality was changed or introduced
[ ] k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
[ ] I have tested my changes using the available tooling
[ ] I have updated the corresponding CHANGELOG

If Applicable Checklist

[ ] I have updated the corresponding README(s); local and/or global
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
[ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

@dylanlott Can you "re-request" a review when its ready and I'll reply to all the comments/questions then?

@dylanlott Can you "re-request" a review when its ready and I'll reply to all the comments/questions then?

You beat me to it. I just finished up addressing your feedback, it's ready for re-review 👍