ERROR: Could not build wheels for dptr, which is required to install pyproject.toml-based projects

device: RTX 4090
OS: Ubuntu 20.04
When I run pip install . , the error appeared
ERROR: Could not build wheels for dptr, which is required to install pyproject.toml-based projects
After I installed the pyproject.toml through pip install pyproject.toml, the error is still there, unchanged.
(pointrix) (cuda_12_1 | /code/dptr)
> pip install .
Processing /code/dptr
  Preparing metadata (setup.py) ... done
Requirement already satisfied: torch in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from dptr==1.0.0) (2.1.1)
Requirement already satisfied: jaxtyping in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from dptr==1.0.0) (0.2.28)
Requirement already satisfied: numpy>=1.20.0 in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from jaxtyping->dptr==1.0.0) (1.26.4)
Requirement already satisfied: typeguard==2.13.3 in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from jaxtyping->dptr==1.0.0) (2.13.3)
Requirement already satisfied: filelock in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (3.13.1)
Requirement already satisfied: typing-extensions in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (4.9.0)
Requirement already satisfied: sympy in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (1.12)
Requirement already satisfied: networkx in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (3.1)
Requirement already satisfied: jinja2 in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (3.1.3)
Requirement already satisfied: fsspec in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from torch->dptr==1.0.0) (2024.3.1)
Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from jinja2->torch->dptr==1.0.0) (2.1.3)
Requirement already satisfied: mpmath>=0.19 in /opt/conda/envs/pointrix/lib/python3.9/site-packages (from sympy->torch->dptr==1.0.0) (1.3.0)
Building wheels for collected packages: dptr
  Building wheel for dptr (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [92 lines of output]
      /opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/cuda/__init__.py:138: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW (Triggered internally at /opt/conda/conda-bld/pytorch_1699449200967/work/c10/cuda/CUDAFunctions.cpp:108.)
        return torch._C._cuda_getDeviceCount() > 0
      No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'
      running bdist_wheel
      /opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
        warnings.warn(msg.format('we could not find ninja.'))
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-39
      creating build/lib.linux-x86_64-cpython-39/dptr
      copying dptr/__init__.py -> build/lib.linux-x86_64-cpython-39/dptr
      creating build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/ewa_project.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/compute_cov3d.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/project_point.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/__init__.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/sort_gaussian.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/compute_sh.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      copying dptr/gs/alpha_blending.py -> build/lib.linux-x86_64-cpython-39/dptr/gs
      running build_ext
      /opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py:424: UserWarning: There are no g++ version bounds defined for CUDA version 12.1
        warnings.warn(f'There are no {compiler_name} version bounds defined for CUDA version {cuda_str_version}')
      building 'dptr.gs._C' extension
      creating build/temp.linux-x86_64-cpython-39
      creating build/temp.linux-x86_64-cpython-39/code
      creating build/temp.linux-x86_64-cpython-39/code/dptr
      creating build/temp.linux-x86_64-cpython-39/code/dptr/dptr
      creating build/temp.linux-x86_64-cpython-39/code/dptr/dptr/gs
      creating build/temp.linux-x86_64-cpython-39/code/dptr/dptr/gs/src
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/code/dptr/setup.py", line 58, in <module>
          setup(
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/__init__.py", line 104, in setup
          return distutils.core.setup(**attrs)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/dist.py", line 967, in run_command
          super().run_command(command)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 364, in run
          self.run_command("build")
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/dist.py", line 967, in run_command
          super().run_command(command)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/dist.py", line 967, in run_command
          super().run_command(command)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 91, in run
          _build_ext.run(self)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 873, in build_extensions
          build_ext.build_extensions(self)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
          self._build_extensions_serial()
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
          self.build_extension(ext)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 252, in build_extension
          _build_ext.build_extension(self, ext)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
          objects = self.compiler.compile(
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py", line 600, in compile
          self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 609, in unix_wrap_single_compile
          cflags = unix_cuda_flags(cflags)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 576, in unix_cuda_flags
          cflags + _get_cuda_arch_flags(cflags))
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 1967, in _get_cuda_arch_flags
          capability = torch.cuda.get_device_capability(i)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/cuda/__init__.py", line 435, in get_device_capability
          prop = get_device_properties(device)
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/cuda/__init__.py", line 449, in get_device_properties
          _lazy_init()  # will define _get_device_properties
        File "/opt/conda/envs/pointrix/lib/python3.9/site-packages/torch/cuda/__init__.py", line 298, in _lazy_init
          torch._C._cuda_init()
      RuntimeError: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dptr
  Running setup.py clean for dptr
Failed to build dptr
ERROR: Could not build wheels for dptr, which is required to install pyproject.toml-based projects

Based on the information you provided, you should firstly install CUDA, which is a must to compile dptr.

Thanks for your response : )
I was installing the dptr on my new docker container with cuda 12.1 before, but the cuda version of my host machine is 12.0. I think the reason is that mismatch of the cuda version in docker container and my host machine. I test another simple cuda program and it throws an error: forward compatibility was attempted on non supported HW in my container.
So I restart another docker container with cuda 11.8 and install the corresponding pytorch-cuda=11.8. Then I reinstall the dptr, and successed.


chore: release 0.17.2

:robot: I have created a release *beep* *boop*
0.17.2 (2019-09-24)
Bug Fixes

typo in BOM dependency (#345) (a1d63bb)

Dependencies

update dependency com.google.http-client:google-http-client-bom to v1.32.0 (#341) (e656244)
update dependency com.google.http-client:google-http-client-bom to v1.32.1 (#346) (be4a7c4)

This PR was generated with Release Please.

Release is at https://github.com/googleapis/google-auth-library-java/releases/tag/v0.17.2

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


feat: Adding Toast Message

What feature?
Adding toast while Register Donor and Organization
Add screenshots

Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I agree to follow this project's Code of Conduct
[X] I want to work on this issue

Awesome, Idea, Go ahead @AyushGakre

Hey @AyushGakre, I encountered this error: Error: @clerk/clerk-react: Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys. when I tried to run the website locally.
Can you help me with this?


Laravel 5.1.4 + Behat + Mailtrap:  getting GuzzleHttp\Exception\RequestException

I am getting  "cURL error 3:  malformed (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) (GuzzleHttp\Exception\RequestException)"  but It seems to me that everything is configured properly.
Using:
Laravel 5.1.4
"guzzlehttp/guzzle": "~5.3|~6.0",
"behat/behat": "^3.0",
"laracasts/behat-laravel-extension": "^1.0"

Guzzle 5 fixes the issue

going to close this feel free to reopen if needed.


Missing Headers (AnalogSignal and FrequencyPlot)

Hi, Thank you for sharing !
I had a problem while compiling. I was missing two headers :
../scopeplotcurve.cpp:3:10: fatal error: AnalogSignal.h: Aucun fichier ou dossier de ce type
#include "AnalogSignal.h"
^~~~~~~~~~~~~~~~
compilation terminated.
In file included from ../formanalyzer.cpp:1:0:
../formanalyzer.h:7:10: fatal error: FrequencyPlot.h: Aucun fichier ou dossier de ce type
#include "FrequencyPlot.h"
^~~~~~~~~~~~~~~~~
Could you please help me ?

Hi,
Which compiler do you use? Have you installed QT Designer.Have you installed "Qwt-6.1.2"  If you install "Qwt-6.1.2" in other folder than "C:\Qwt-6.1.2\src", please modify INCLUDEPATH in the QT project file "audioanalyzer.pro"
AnalogSignal.h is in GIT and I do not see any problem why you would not be able to compile it. You have to configure your IDE (QT Designer)and Compiler...
Best RagardsBoris
Am Mittwoch, 11. Oktober 2023 um 10:51:12 MESZ hat Yannick-ll<EMAIL_ADDRESS>Folgendes geschrieben:

Hi, Thank you for sharing !
I had a problem while compiling. I was missing two headers :
../scopeplotcurve.cpp:3:10: fatal error: AnalogSignal.h: Aucun fichier ou dossier de ce type
#include "AnalogSignal.h"
^~~~~~~~~~~~~~~~
compilation terminated.
In file included from ../formanalyzer.cpp:1:0:
../formanalyzer.h:7:10: fatal error: FrequencyPlot.h: Aucun fichier ou dossier de ce type
#include "FrequencyPlot.h"
^~~~~~~~~~~~~~~~~
Could you please help me ?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Hi,
Thank you for your quick response.
This is my config :

Ubuntu 20.04
Qt 5.12.8  (GCC 9.3.0, 64 bit)
Qt Creator 4.11.0
Qwt installed under : /usr/local/qwt-6.1.2/

I was a bit "lazy", sorry. The headers are there. Just few difference with upper/lowercase in the naming :-). For instance, "AnalogSignal.h" instead of "analogsignal.h".
I updated the names wherever it was necesary.
I also did the following change :

replace "#define WINDOWS_ASIO"  with  "#define LINUX_ALSA" in RtAudio.h

But I still have some errors like :
In file included from ../RtAudio/include/asiodrivers.cpp:2:
../RtAudio/include/asiodrivers.h:7:10: fatal error: CodeFragments.hpp: Aucun fichier ou dossier de ce type
7 | #include "CodeFragments.hpp"
|          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
../RtAudio/include/asio.cpp:254: warning: ignoring ‘#pragma export off’ [-Wunknown-pragmas]
254 | #pragma export off
|
make: *** [Makefile:915 : asiodrivers.o] Erreur 1
make: *** Attente des tâches non terminées....
cc1plus: error: ‘::main’ must return ‘int’
../RtAudio/include/asio.cpp:45:11: error: conflicting declaration of ‘ASIOError ASIOInit(ASIODriverInfo*)’ with ‘C’ linkage
45 | ASIOError ASIOInit(ASIODriverInfo *info)
|           ^~~~~~~~
I am certainly missing something, but I don't know what ...

all headers are here

Ok


Problem with discord login

Hello, I try to log in with discord account and after confirming everything on the discord page I am redirected to:
https://www.exevopan.com/login?callbackUrl=https%3A%2F%2Fwww.exevopan.com%2Fpl%2Fdashboard&error=OAuthAccountNotLinked
Google account works perfectly fine

I have the same problem


fix for issue #4

Added functions to plot the number of mutations per site (a) as a distribution and (b) along the sequence.
Example plots for (a):

(b):

Looks great!

@savitakartik small FYI: if you use one of the closing keywords in either the PR description or the commit message GitHub will automatically close it when the PR is merged.


Net revenue of API3 tokens to be burned

A discussion needs to begin on whether the use of the phrase net revenue is correct. See dao-pool.md/Rewards and Risks,  first paragraph.
To align the governance incentives with API3’s success, combined with the inflationary rewards, the net revenue to the DAO will result in the burning of API3 tokens.
Should it be:

gross revenue
net revenue
revenue

The concern is over the tokens from revenue used to pay the API providers (tokens used to transfer USDC or monies to API providers). Aren't these tokens thus burned in principle as a result of the payout?

So this now appears in the API3 Member doc The DAO Pool. Currently, it says net revenue. Under the heading Rewards, paragraph #1, sentence #4.
To align the governance incentives with API3’s success, combined with the inflationary rewards, the net revenue to the DAO will result in burning of API3 tokens.
I could use input from Erich and @bbenligiray on the correct way to express this. I will contact Erich via Slack as I do not see his GitHub account.

Am leaving this as net revenue. There are insurance fees.
API3 aims to set up, maintain, and monetize dAPIs at scale. Its success in doing so can be estimated by its total revenue, as this will increase with the number of dAPIs and the amount of funds secured by them. API3 generates revenue through subscription fees and insurance fees. The fees can be made in any cryptocurrency, which will be received by the DAO in API3 tokens through a liquidity pool-based decentralized exchange. To align the governance incentives with API3’s success, combined with the inflationary rewards, the net revenue to the DAO will result in burning of API3 tokens. This mechanic will produce positive staking incentives using inflationary rewards and claim risks rather than revenue sharing.


how to fetch data from tenant in tenant mode and make globally available in all view files.

Describe the bug
I used to fetch data in serviceProvider and make it available globally in all view files. But now using this tenancy package, it only return data from central database. So to fetch data from own tenant database, how can we achieve.
Using from the middleware, is not working, since it also returns data from central database
Expected behavior
A clear and concise description of what you expected to happen.
Your setup

Laravel version: [e.g. 7.0]
stancl/tenancy version: [e.g. 3.4]

The tenant can only be accessed if it was identified before (in the middleware specified in the TenancyServiceProvider). I think you are making the request to a central domain (localhost or <IP_ADDRESS>) and therefore, there're no tenant available.

Please respect the issue templates.


Pipx and apt installed version issue

I am a getting two different error when I try to install or use netexec and I am wondering if this is bug or if someone has ran into this issue and can help me getting these resolved so that I can get the tool installed and usable.

Is this a fresh Kali? I'm not sure about the first error, but the second isn't an error from NetExec, it's saying you don't have the binary gcc-11, which is apparently required for arc4 and bitstruct. Is this a small version of Kali that doesn't have everything installed?

No it is the normal one. The version is VERSION_ID="2024.4" and 6.11.2-amd64.

Not sure what the problem is or why this occurred. Is gcc present on the system? If not try to install it, maybe that solves the issue


KAFKA-9924: Add RocksDB metric num-entries-active-mem-table

This commit adds the first RocksDB metric that exposes RocksDB property num-entries-active-mem-table. More specifically it introduces

code in StreamsMetricsImpl that is shared by all such metrics,
unit tests for the shared code
code that adds the metric
unit tests and intergration tests for the metric

This commit only contains one metric to keep the PR at a reasonable size. All other RocksDB metrics described in KIP-607 will be added in other PRs.

Call for review: @guozhangwang @vvcephei

JDK 8 and Scala 1.12 had following test failures:
    org.apache.kafka.connect.runtime.WorkerSourceTaskWithTopicCreationTest.testCommitFailure
    kafka.api.PlaintextAdminIntegrationTest.testConsumerGroups

Thanks for the update, @cadonna . Just one reply above.

Retest this please

test this please

If we assume, that the same thread adds and removes the state store level metrics (which is currently the case), we just need thread-safe maps storeLevelSensors and storeLevelMetrics and forgo synchronize. This can be done by using ConcurrentMap instead of Map. However, with the current API, we do not make that assumption, because we pass in the thread ID. I would be really happy to get rid of synchronized and make the changes to the API for state store level metrics. Afterwards, we should consider adapting also the other levels.

I removed synchronized during adding and removing store level sensors and metrics. Let me know what you think. If you do not like it, we can revert the last commit.

LGTM. Leaving to @vvcephei for final review and merge.
I think it is okay to not bookkeep the thread id and always rely on currentThread() assuming only one thread would be accessing the store level sensors.

Retest this, please

test this please

ok to test

test this please

test this please

Since the PR builds aren't running, I'm merging with trunk on my machine and running the tests.

Hey @cadonna , after checking out your branch and merging with trunk, I discovered some minor conflicts with 22bcd9fac3c988c15862d0b6c01930814b676253, so I pushed a quick fix before squashing and merging. I hope this is ok.
Thanks again for the PR!

@vvcephei Thank you very much for taking care of the conflicts and merging the PR!


Add the team members API

Coverage increased (+0.3%) to 87.562% when pulling f96a29398c8edb9c148c2f80351d2c73d6f01451 on devlocker:team_members_api into 1520fdf1f4dbd66381e929b492474a0473a93729 on edgurgel:master.

Nice 👍 thanks!


feat(core): support batch+parallel edges traverse

Purpose of the PR

Support batch processing and concurrent execution using multiple threads

KoutTraverser & KneighborTraverser

#2276

Main Changes

Enhance Consumers.java, supporting ExceptionHandle and Future to handle InterruptedException when awaiting
Add Nested Iterator Edge and support batch execution
Support batch execution & thread parallel in KoutTraverser and Kneighbor
design document

Verifying these changes

[ ] Trivial rework / code cleanup without any test coverage. (No Need)
[ ] Already covered by existing tests, such as (please modify tests here).
[x] Need tests and can be verified as follows:

Postman Test & Runtime Log: the tests of Kout Post are shown below

Initialize the Graph

Initialze the graph according to the link

Add LOG in consumer

Postman Test & Check Log

About correctness, we conducted multiple sets of serial and parallel comparison tests and found no differences
About parallel acceleration, there is no significant acceleration due to the lack of larger levels of test data

Does this PR potentially affect the following parts?

[ ]  Nope
[ ]  Dependencies (add/update license info)
[ ]  Modify configurations
[ ]  The public API
[x]  Other affects (typed here)

Traverser execution logic

Documentation Status

[ ]  Doc - TODO
[ ]  Doc - Done
[x]  Doc - No Need

could use ldbc data to perf it (u could the instruction in ldbc-feishu-doc)


Training time: How long does it take for training D0/D1?

@thuyngch Thank you for sharing your great work!
Could you share the training time for D0/D1 with the setting (gpu, num gpu, cpu, etc..)?
Thanks,
Yuki

Hi @yukitsuji ,
I trained D0 with 300 epochs, 4 V100 GPUs.
You can find the detail config in here: https://github.com/thuyngch/ATSS-EfficientDet-PyTorch/blob/master/configs/effdet/atss_effdet_d0.py

Thanks.
Could you also provide the log of D0 you trained, and the versions of mmcv and pytorch?
At the moment, I can not reproduce the map with the same setting.


Feedback for "Basic structure of an HTML document" lesson

I think this is done. Right now Iulian needs to implement the lesson


[Grid cert] Link to the next section.

Or rather, provide a linking paragraph - the links are provided by the section on the left and the "Next" button at the bottom of the page.

Fixed by #26.


aursync: fix order of arguments passed to aurcheck

I found that when passed after the non-option arguments, the -r argument was ignored by getopts.

Perhaps it's better to use an explicit argument for the database in aurcheck, similar to aurbuild -d, instead of relying on an exact order?

I'm comfortable with that.

Thanks!


remove jquery.easing and remove deprecated function

use anime.js instead of jquery.easing
use on event instead of click and scroll because these functions are deprecated

Thank you for this improvement!


Funny behavior on global custom reactions

If you get a list of global custom reactions (by DMing the bot with .lcr) the list of global custom reactions is paginated, but it's behavior is really weird...

I tested it now and it seems to work properly after that sharding change


0.6.0 Top Account menu issue -

Last choosen acc isn't displayed sometimes after swtiching to another acc ... have to switch to different accounts several times before this account is displayed again top right acc nav !

Probably this is not a bug but feature - I don't display current account in the list, instead you can click on Account Details

sure if it works like that ! But e.g i'm on cass1 and then swtich to cass2! But if i'm looking on dropdown then, sometimes cass1 isn't listed even though current account is cass2

no, you should see your cass1 account when you switched to cass2, I'll be watching this, hope it reproducible in my dev environment.

Another report: https://bitsharestalk.org/index.php?topic=14155.msg185242#msg185242


Save sensitivity analysis intermediate results in less files

There is a disk quota on the amount of files we are allowed to produce on the Euler scratch folder. This is set at one million files. The way we currently operate, we exceed this quota really easily when doing bigger-N simulations.
Ideas could include:

deleting analysis by hand more frequently
working with archives (but, concurrency??)
working with a sql database (but, concurrency??)

I was creating an issue on this until I realized... hey, there already is one!
1. File limit
The limit to the number of files that can be stored at any given time on Euler is a major issue. The limits on the Euler scratch folder are as follows: 1 million files and 2.5 TB. That sounds like a lot, but when doing sobol, for example, the number of files created is:
2*(# of variables+1)N(# of buildings + 1).
This means that for the standard uncertainty distribution database in the CEA and N=1000 (which is normal for sobol) the maximum number of buildings we can run is only 16!
2. Deleting files
Furthermore deleting the files then takes ages - ~1 day! So... not very practical.
3. Euler policy
Furthermore I contacted Euler support to ask if there was any better way to delete these files and... basically got my ears yanked:

creating many small files in a cluster storage system like /cluster/scratch is generally a NO-GO. The cluster file systems are optimized for large files. Creating a million small files will slow down the storage system, overload the metadata server and therefore also affect other users.
Please change your workflow accordingly.
So yeah, we need a solution for this.

4. What I did
What I did in order to be able to run my simulations is the following. Rather than creating (# of buildings + 1) per sample, I'm creating 1 excel file containing (# of buildings + 1) per sample. For the Hochschulquartier case study, this means creating 0.35% as many files as created originally! I also adapted the analysis script accordingly. I am currently testing this for the first time - I don't know if it's an efficient way of doing so, but it is definitely a lot more practical in terms of number of files.
5. Should we do this?
@daren-thomas @JIMENOFONSECA Would this be a solution? Perhaps a stopgap while Daren considers the latter two ideas in the original post (since these would likely require bigger overhauls)?

Yes definitely!, good call on improving this work. Did it work?
Best, Jimeno
On 4 Apr 2017, at 16:56, martin-mosteiro <notifications<EMAIL_ADDRESS>wrote:
I was creating an issue on this until I realized... hey, there already is one!

File limit
The limit to the number of files that can be stored at any given time on Euler is a major issue. The limits on the Euler scratch folder are as follows: 1 million files and 2.5 TB. That sounds like a lot, but when doing sobol, for example, the number of files created is:
2*(# of variables+1)N(# of buildings + 1).
This means that for the standard uncertainty distribution database in the CEA and N=1000 (which is normal for sobol) the maximum number of buildings we can run is only 16!

Deleting files
Furthermore deleting the files then takes ages - ~1 day! So... not very practical.

Euler policy
Furthermore I contacted Euler support to ask if there was any better way to delete these files and... basically got my ears yanked:

creating many small files in a cluster storage system like /cluster/scratch is generally a NO-GO. The cluster file systems are optimized for large files. Creating a million small files will slow down the storage system, overload the metadata server and therefore also affect other users.
Please change your workflow accordingly.
So yeah, we need a solution for this.

What I did
What I did in order to be able to run my simulations is the following. Rather than creating (# of buildings + 1) per sample, I'm creating 1 excel file containing (# of buildings + 1) per sample. For the Hochschulquartier case study, this means creating 0.35% as many files as created originally! I also adapted the analysis script accordingly. I am currently testing this for the first time - I don't know if it's an efficient way of doing so, but it is definitely a lot more practical in terms of number of files.

Should we do this?
@daren-thomashttps://github.com/daren-thomas @JIMENOFONSECAhttps://github.com/JIMENOFONSECA Would this be a solution? Perhaps a stopgap while Daren considers the latter two ideas in the original post (since these would likely require bigger overhauls)?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/architecture-building-systems/CEAforArcGIS/issues/438#issuecomment-291436751, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIjrgix09WBHnwXoPgblUer0ZeIafs4Dks5rsgXQgaJpZM4LQe66.

@JIMENOFONSECA It worked... but there might be a better solution which avoids moving over to xls files, as @daren-thomas explained to me yesterday.

Let's do this. I can't think of a solution that is better except using sqlite, but that requires a whole new set of looking at the problem and ain't nobody got time for that!

@martin-mosteiro should we close it or leave it as something nice to have?

I think it would be cool to be able to do monthly sensitivity analysis, no?
The Excel solution didn't work, but Daren's sqlite proposal seems to work out pretty well. I think either he or I could eventually implement it.
Now in terms of priorities... I guess it depends on whether we consider monthly sensitivity analysis a priority or not.

For the record, I think using a MySQL database (like those we can order from ETH, no problemo) would be the best solution, especially since we are doing things in parallel - sqlite might break down for that as that is not what it is intended for. The code would be the same though, just a different database connection...
Let's keep this in mind (in the "New" column) and schedule it for an upcoming milestone < 3.0 - the same techniques might also come in handy for the optimization - we shouldn't be creating a million files when a database could do the work for us!

for the time being, we will not implement this, but we will keep it open


Added flashlight to android

Description

...
Related Issues

Example:
fb-2 [link]
fb-4 [link]

Developer checklist

[ ] All existing and new tests are passing.
[ ] All github actions are passing.

Breaking Change
Does your PR require users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[ ] No, this is not a breaking change.

Minor Change
Does your PR does significant semantic change? (A lot of design changes, architecture changes...)

[ ] Yes, this is a minor change.
[ ] No, this is not a minor change.

Screenshots

For reviewers
All PR's needs at least one reviewer to be merged.
Before merge this PR confirm that it meets all requirements listed below:

The PR has good quality code and has automated tests (if is the case)
This PR is not as Draft

Your bootstrap is up to date 👌


Add a basic CI

Rebased on master (which i had to change once again so now Github is unhappy), merging this as it's just a simple CI implem tested with #1

Interestingly the merge status eventually showed up here but not at the top


[Bug] The background color is not recognized when copying and pasting, and the border and rich text are parsed incorrectly.

Before you submit this issue, have you checked the following

[X] Is this really a problem?
[X] I have searched the Github Issues for similar issues, but did not find anything.

Affected packages and versions
dev
Reproduction link

左侧是excel数据，复制到univer内如右侧所示
Expected behavior
格式能够还原
Actual behavior
背景色没有识别，边框和富文本解析错误
System information
No response

fixed


Fixed inverse merge, improved logging during debugging

After refactoring inverse merge (update-eclipse-workspace-settings) was broken. Some variables were not substituted anymore. To trace down the error I improved the logging that was not yet helpful enough. Further I discovered that on linux and mac the system resolves links (which are especially required to make eclipse work under macos) and therefore the re-substitution of the paths does not work as expected. I extended the solution to resolve symbolic links and allow also the substitution of the results as far as symlinks are involved.


improving ui/ux of apply and login pages  and contact us pages.

Is your proposal related to a problem?
improving ui/ux of login and apply page and also of contact us page.
Please assign this issue to me under gssoc-extd and hacktoberfest.
(Write your answer here.)
Describe the solution you'd like
i would like to display some image with 3d effect in background of login and apply page as they as totally black from back also contact us page is also totally white would like to change the background of it too.
Kindly assign me this issue under gssoc and hacktoberfest good level .
(Describe your proposed solution here.)
Describe alternatives you've considered

(Write your answer here.)
Additional context

(Write your answer here.)
Requirement/Document

(Share it here.)

i want to change the background of CONTACT US page , it will be easy on eyes for users . please assigne me this  Sir .


Add support for build type variable substitution in settings

Not relevant for every setting entry, but would allow to write
"cmake.buildDirectory": "${workspaceRoot}/build/${buildType}"

which would substitute ${buildType} to either Debug or Release and allow to use different build trees.

this is relevant only for generators that do not support multiple configurations. (visual studio)
For such, a warning should come to the user saying ${buildType} makes no sense in buildDirectory.

Done!


Update magic to 8.3.404

Description
This update incorporates important changes to extraction, please update to this version in OL.
Proposal
No response

Handled here https://github.com/The-OpenROAD-Project/OpenLane/pull/1850

https://github.com/The-OpenROAD-Project/OpenLane/pull/1850 updated magic to 9b131fa/8.3.403, but I need 482d753/8.3.404 or later!


P2868R1 Remove Deprecated std::allocator Typedef From C++26

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2868r1.pdf

完了


Learn Typescript

https://www.freecodecamp.org/news/learn-typescript-beginners-guide/
and expand from there. Likely into CDK stuff

Started this process through other work and no need to explicitly go out of my way to learn it at this point.


GitHub Actions on Windows doesn't stop on error

Description
Here's a pipeline which demonstrates the bug, it should fail but it keeps on running, leading to unexpected consequences in the rest of the pipeline:
  build-windows-failure-bug:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Fail test
        run: |
          curl https://does-not-exist.this-will-fail/
          curl https://example.com/

Here's a more complete example:
https://github.com/justanotheranonymoususer/actions-test/blob/5c0935375762cfbcc8f6231aae60c50a6c2b284b/.github/workflows/blank.yml
Execution result:
https://github.com/justanotheranonymoususer/actions-test/actions/runs/3569092631
You can see that on ubuntu-latest, it fails properly, but in windows-latest, it doesn't fail even though it should.
Platforms affected

[ ] Azure DevOps
[x] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 10.15
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[X] Windows Server 2022

Image version and build link
windows-latest
Is it regression?
Not/don't know
Expected behavior
Windows pipeline fails on first error
Actual behavior
Windows pipeline keeps running
Repro steps
See pipeline in the description

hello @justanotheranonymoususer, thank you! we will investigate.

@justanotheranonymoususer you could slightly modify you workflow and get the same results for Ubuntu and Windows.
Here is an example:
build-windows-failure-bug:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Fail test
        run: |
          curl https://dfgjndrgierngiergnregerg
          curl https://example.com/
        shell: bash

@justanotheranonymoususer, i am going to close the issue. if you have any questions or concerns, please feel free to reopen.

You showed a workaround, but the default behavior is still undesired, is
it?
On Wed, Dec 7, 2022, 12:07 Dusko Dobranic @.***> wrote:

Closed #6668 https://github.com/actions/runner-images/issues/6668 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/actions/runner-images/issues/6668#event-7976078049,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMDRPCJLHPA5ZLRWA47K5TWMBOWJANCNFSM6AAAAAASQE7TYI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I did a couple of other checks. I tried these shells: bash, sh, powershell, pwsh, cmd.

These continue even if there's an error: pwsh, cmd
These abort as expected: bash, sh, powershell

Here's what the docs say:
cmd

There doesn't seem to be a way to fully opt into fail-fast behavior other than writing your script to check each error code and respond accordingly. Because we can't actually provide that behavior by default, you need to write this behavior into your script.

pwsh (default on Windows)

Fail-fast behavior when possible. For pwsh and powershell built-in shell, we will prepend $ErrorActionPreference = 'stop' to script contents.

For cmd, it's known and documented that it continues after a failure. But for pwsh, it should abort after the first error, which seems like a bug as it actually continues execution.
I'm not sure what "when possible" means in the PowerShell documentation. I think it should be fixed, and, if not possible, documented properly.

@ddobranic how I can achieve the same behavior (to abort) with powershell or pwsh  as I need some of their commands?

Same issue. Windows passes but linux fails.
  build-win:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - run: |
          cargo build --release
          cargo test
          ./target/release/e2e

  build-linux:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - run: |
          cargo build --release
          cargo test
          ./target/release/e2e

Should a new bug be filed, or is it possible to re-open this bug? Per this comment, shell pwsh is not working as documented, which is a bug (either with the workflow or the documentation). Worse, shell: cannot be parameterized with the matrix, so the choices are to use Bash with everything or have a completely different workflow script for Windows vs other OSes, neither of which are ideal choices.


bug: Sign up issue

Type: bug
Ionic Version: 2.x
Platform: desktop browser
In, ionic.io/products/creator signup was not working.

Hello, thanks for using Ionic! Would you mind trying again? It seems to be working fine on my end. Thanks!


Added a Login Page

Hello, I would like to contribute to your project.  I have made a login page using Html & CSS. And also I have added some animation to the age.
If you like my design, then please accept my pull request and add the label "hactoberfest-accepted".
Thank you.

hey! @Z-crete19   thanks for your contributions 🤙


Description field in the Rules table

Hello, Dear team, I'd like to propose add addtional field into Rules like a "Description"

Since sometimes we add a lot of specific IP addresses in to rules would great to put some remark what does this IP mean.
If that not hard work, could you please implement it.
Thanks in advance.

Hi @alekseydemidov, thanks for the suggestion.
Unfortunately 0.7 is end-of-life (EOL) and we won't be adding further features to it.
You're welcome to fork and make the change yourself if you're familiar with Elixir/Phoenix.


update logo

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

whats the actual change here?

@bartosz-lipinski Under the heading "files changed" you will find the changed logo image (BIN -67.2 KB (16%) assets/mainnet/ELyNEh5HC33sQLhGiQ5dimmwqiJCiqVJp3eQxpX3pKhQ/logo.png).
Click on the "display the rich diff" button (middle Btn) there to see more details about the logo change.


Update findOwners.html

I removed the 'add owner' button which was supposed to be in the navbar and not in the page body

@Bobzero23 Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

No CLA. Probably not a serious request?


[Update] Russian translation

Add missing strings from English translation and correct some strings.
P.S. Why translation on site not update after voyager.php editing? Showing old texts.
P.P.S. Too many strings still untranslatable (not represent in voyager.php file).

To see the translations edit the configuration locale in config/app.php.

I solve a problem with outdated translations: just copied it from vendor folder to the public. I can't understand why we need a translations table in database if we use the files?

The translations table is for translating BREAD. Since BREAD is dynamicly inserted, the translations for that needs to be dynamic as well.


Printing without preview in Android

Hi,
Is there any way now (which wasn't there in past) in Android, print a document "silently" on Android without displaying the preview page?
Thanks

did u get any solution?

any solution????????

Hi, Is there any way now (which wasn't there in past) in Android, print a document "silently" on Android without displaying the preview page?
Thanks

any solution


it is crashed oops

Checklist

[x] I'm asking a question
[ ] I've looked through the README and FAQ for similar questions
[ ] I've searched the bugtracker for similar questions including closed ones

Question

idon't no what happen but is crashed
amine@pc ~ $ youtube-dl
Traceback (most recent call last):
File "/usr/bin/youtube-dl", line 11, in
load_entry_point('youtube-dl==2020.5.3', 'console_scripts', 'youtube-dl')()
File "/usr/lib/python3.8/site-packages/pkg_resources/init.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3.8/site-packages/pkg_resources/init.py", line 2852, in load_entry_point
return ep.load()
File "/usr/lib/python3.8/site-packages/pkg_resources/init.py", line 2443, in load
return self.resolve()
File "/usr/lib/python3.8/site-packages/pkg_resources/init.py", line 2449, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/lib/python3.8/site-packages/youtube_dl/init.py", line 15, in
from .options import (
File "/usr/lib/python3.8/site-packages/youtube_dl/options.py", line 8, in
from .downloader.external import list_external_downloaders
File "/usr/lib/python3.8/site-packages/youtube_dl/downloader/init.py", line 3, in
from .common import FileDownloader
File "/usr/lib/python3.8/site-packages/youtube_dl/downloader/common.py", line 9, in
from ..compat import compat_os_name
File "/usr/lib/python3.8/site-packages/youtube_dl/compat.py", line 7, in
import ctypes
File "/usr/lib/python3.8/ctypes/init.py", line 7, in
from _ctypes import Union, Structure, Array
ImportError: libffi.so.7: cannot open shared object file: No such file or directory

libffi.so.7: cannot open shared object file: No such file or directory


Pallets: Asset Rate - Rename AssetId to AssetKind, Introduce AssetKindFactory Trait

In the Asset Rate Pallet, the AssetId type parameter has been renamed to AssetKind. Alongside this change, the AssetKindFactory trait has been introduced specifically for benchmarks.
For Polkadot and Kusama, the AssetKind will be represented as a type consisting of (xcm::MultiLocation, xcm::AssetId). This renaming is done to avoid naming collisions.  And since it is not suitable to implement From<u32> for such a type, we introduce the AssetKindFactory trait as a solution.

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/3230766

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/3266281

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/3266526

bot merge


Set rating level when using GiphyContent.search

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Summary 💡
Would be great to be able to set the rating level when using GiphyContent.search.
This works with the Web SDK.
Motivation 🔦
We are building an cross platform app for android, ios and web. We have built our custom Giphy experience by using the Search API in combination with GiphyGridView for native and Grid for web.
One requirement we are having in our app is that we need to set the rating to ensure that non disturbing gifs are shown to the user due to the reason that it is a business/enterprise app.
As I said earlier, this works perfectly in web but it is missing in the native sdk.

Hi @chaaya, thanks for reaching out. This is a good point. We will add this feature in an upcoming release. When it happens, I'll update the status here.


http: adding alpn clusters accessed via x-envoy-mobile-upstream-protocol: alpn

This also sets the new alpn clusters to preserve case for HTTP/1.1
Risk Level: low
Testing: unit tests
Docs Changes: n/a
Release Notes: n/a
Part of #1548
Part of #1558

CI failure is legit - please ignore this PR for now :-P

Re-running iOS app tests.

No, as said over in the propercase PR, I update Envoy to handle propercasing there but had added it to the "prod config" here
Initially I'd had some syntax errors, and the cc tests using config failed.  I'm pretty confident with those passing now this is valid config, but it's only valid config for new Envoy-mobile builds with the propercasing library linked in.
I thought adding propercasing to library/common/config/BUILD would be sufficient but as this is still failing I'm wondering if something in this test uses prebuilt envoy-mobile, and if I have to submit a PR with the new linking rule, then submit a follow-up PR using the new link rule.  Thoughts?

ok in the absence of advice I'll try checking in the build changes for preserving case, and see if a follow-up PR applying the config sticks better.


Workers shutting down with getting no response from master after stopping or ending a load run

Prerequisites

[X] I am using the latest version of Locust
[X] I am reporting a bug, not asking a question

Description
Hi.  You can start only one run and that's it, they shut down again.
If I'm using the next params below for starting the master node (no changes for the workers start command) everything works fine. Workers are not shutting down after stopping or ending a run.
locust \
    --master \
    -f main.py

But it is not convenient to fill those params on the web-ui to start load tests.
I also wanna note that if you put just one extra param to the last starting Locust's master command, it starts that shutting down workers' behavior.
I didn't test all the available commands and how it behaves with the same params in config file.
Command line
locust --master --users 1 --spawn-rate 1 --host "http://load-host" --run-time 60s --stop-timeout 150 -f main.py
Locustfile contents
from locust import FastHttpUser, task, between

class SomeUser(FastHttpUser):

    wait_time = between(3, 5)

    @task
    def buggy_case(self):
        self.client.get("/")

Python version
3.12.2
Locust version
2.24.0
Operating system
macOS Somona 14.3.1

Yea that looks really annoying... Do you have the same issue if you dont use --stop-timeout, or set that to a lower value? What about if you dont use --processes and launch workers individually? (shouldnt cause this kind of issue of course, but I just want to narrow it down)

Do you have the same issue if you dont use --stop-timeout

No, I don't. Maybe I didn't check it properly yesterday.

or set that to a lower value

I've tried to start master node with --set-timeout 15 the issue is still there

What about if you dont use --processes and launch workers individually?

I've tried both options with set processes and without them, no changes here, the issue still appears

Interesting. Can you run both master and worker with debug log level? (-L DEBUG)
Looks like the workers disconnect (which is "normal", if a bit awkward for just stopping), but they never re-register with the master, so the master doesnt send heartbeats.


Feature request: make it possible to keep docker container warm

I understand from other issues that a new docker container is started for each request. This makes some experiments or automated tests undoable in practice. SAM Local is much too slow in the context where more then 1 request is to be handled.
I suspect that hot reloading depends on this feature.
I think it would be a good idea to make it possible to choose, while this project evolves further, to forego hot reloading, but to keep the docker container warm.
Something like
sam local start-api -p <PORT> --profile <AWS PROFILE> --keep-it-warm

This would broaden the applicability of sam local enormously.
Thank you for considering this suggestion. This looks like an awesome project.

+1 Python container takes too long to start for simple debugging...

Have there been any eyes on this?  The benefit would be so huge.

+1

+1

+1

+1, even a simple hello world java8 lambda takes 3/4 seconds for each request!

+1

+1 Very interested in this feature

+1 Yes please!

+1, throwing my hat in the ring on this too

As a note: Please use the reaction feature on the top comment. We do look at issues sorted by thumbs up (as well as other reactions). Commenting +1 does not good for that and adds noise to the issue.

@jfuss I agree (and had done this). Any feedback from your team would be helpful here, though. The closest thing we had to knowing if this is on your radar (before your comment) was duplicate issue consolidation and labeling.

+1, this would be very beneficial for people using java + spring boot.

+1, around 1s for golang case

1 second is a world's difference when building an API and you expect to serve more than 1 request.
I think it's well worth the feature.

@kevanpng Hey I was looking through your code to understand what exactly you did.. So basically, you create the container once with a fixed name, run the function, and on next invocation look for container with same name and simply container.exec_run instead of creating it from scratch again. Is my summary correct?
I am super surprised Docker container creation makes this big of a difference. We can certainly look deeper into this if it is becoming usability blocker.

@sanathkr. Thanks for looking at this. FWIW, it's a huge usability blocker for me:
~/src/faculty/buildshot$ time curl -s http://<IP_ADDRESS>:3000/ >/dev/null # SAM container via Docker

real	0m6.891s
user	0m0.012s
sys	0m0.021s
~/src/faculty/buildshot$ time curl -s http://<IP_ADDRESS>:5000/ >/dev/null # regular python app via flask dev/debug server (slow)

real	0m0.039s
user	0m0.012s
sys	0m0.019s

And the Instancing.. is quick. It's Docker (and the way Docker is used here) that's slow. The (slow) werkzeug-based dev server is ~175x faster than waiting around for Docker. And this is for every request, not just startup.

I did some more profiling by crudely commenting out parts of the codebase. Also this is not run multiple times. So the numbers are ballpark estimates. I ran sam init and ran sam local-start-api on a simple HelloWorld Lambda function created by the init template.
Platform: MacOSX
Docker version: 18.06.0
Total execution time (sam local start-api): 2.67 seconds
Skip pull images (sam local start-api --skip-pull-image): 1.45 seconds
Create container, run it, and return immediately without waiting for function terminate: 1.05 seconds
Create container, don't run it: 0.2 seconds
SAM CLI code overhead (don't create container at all): 0.045 seconds
Based on the above numbers, I arrived at a rough estimate for each step of the invoke path by assuming:
Total execution = SAM CLI overhead + Docker Image pull + Create container + Run Container + Run function
Then, here is how much each steps took:
SAM CLI Overhead: 0.045 seconds
Docker Image Pull Check: 1.3 seconds
Create Container: 0.15 seconds
Run container: 0.85 seconds
Run function: 0.45 seconds
The most interesting part is Create vs Run container durations. Run is 5x of Create. So it is better if we optimized for the Run duration.
If we were to do a warm start, then we would be saving some fraction of the 0.85 seconds it took to run the container. We should be keeping the runtime process up and running inside the container and re-run just the function in-place. Otherwise we aren't going to save much.

+1

@scoates  Thank you for the detailed information. Definitely worth instrumenting the code further to dive deep. I will reach out when I have an instrumented version of SAM CLI to try out.

In case of java8: the on-line version of Lambda keeps the JVM running for a long time. It would be nice to replicate this in 'sam local' mode as then I can study any memory usage issues/OutOfMemoryExceptions I see.

+1 We're running test suites for fairly simple microservices where individual tests can take 10+ seconds to run.

I've wrote a tool can simulate sam local start-lambda and keep warm for Lambda written in Golang.
https://github.com/vrealzhou/lambda-local. Not perfect but helps in our own project.

Maybe it could be that docker is slow on Mac?

I've done some reading around on the internet and think this is just the case.  And it appears this slowness comes from mounted volumes and Docker's osxfs. No clue how to make this better tho.

I've been reading this article (https://docs.docker.com/docker-for-mac/osxfs-caching/) with regard to Docker volume performance on Mac. I've been reading a little of SAM's Python (not my primary language) and I've landed in local/docker/manager.py and wonder if we should be using :delegated or :cached along with --docker-volume-basedir, -v, SAM_DOCKER_VOLUME_BASEDIR options to help speed this up?

OK, not a Python person, but I was able to hack up a few things in my local container.py source and change this from ro to delegated.
        LOG.info("Mounting %s as %s:delegated inside runtime container", self._host_dir, self._working_dir)

        kwargs = {
            "command": self._cmd,
            "working_dir": self._working_dir,
            "volumes": {
                self._host_dir: {
                    # Mount the host directory as "read only" directory inside container at working_dir
                    # https://docs.docker.com/storage/bind-mounts
                    # Mount the host directory as "read only" inside container
                    "bind": self._working_dir,
                    "mode": "delegated"
                }
            },
            # We are not running an interactive shell here.
            "tty": False
        }

And this line in my app.rb went from ~45s to ~13s. Still not ideal, but better!
puts(Benchmark.realtime { require_relative 'config/application' })

I created this pull request that adds delegated after ro to the volume. https://github.com/awslabs/aws-sam-cli/pull/1046

+1, my issue is not performance but the fact that we can't perform unit/acceptance tests on warm local lambda and bugs can be found after deployment.

@sanathkr, any progress here? It certainly makes local development a bit painful with how long the response times are.
I played around with some benchmarking myself and figured I'd share. I'm running Docker in a Linux VM. All timings include using delegated for the volume mount.
Just running a simple 'hello world' container which automatically removes once it's done takes ~300-400ms, which is on par with what this source says as well. I used docker events to get accurate timestamps. Unfortunately that's not super fine-grained, going from network connect to container start. Considering I also tried with network set to none and there was no noticeable difference in the time between those two events, I'm sure more is happening between the first and the second, it's just not given a name.
I tried taking the volume mount of the picture and saw significant speed-up in execution duration from doing so. I simply made a Docker image based on lambci/lambda:nodejs8.10 and added the directory to /var/tmp, then changed container.py to not do the volume mount, and hard-coded it to that image.
I saw a 3x speedup in execution duration when using this method (1500ms -> 500ms, 2200ms -> 700ms, etc). Note that this is from SAM's outputted duration, the real-world time includes the Docker overhead of ~400ms. So, the volume mount is definitely a source of significant slowdown in the container. A warm container would perform better if it copied the data and used the copied version instead of using directly from the mount. Of course, this would pose some problems for the hot-reload functionality, as it would require polling to ensure the copied version is up-to-date.
If it's preferred to keep each request in a single container that executes then exits, perhaps a pool of 'warm' containers could be kept. Say a pool of 5 (configurable by a flag) containers are created and each is only 'ready' once it is past the Docker overhead of creating the container and copying the data from the volume mount to /var/task. As the containers are used, new ones are brought up, keeping the pool at the correct size. Ideal pool size would be large enough to cover concurrent requests. The only real tricky thing here is containers would need to be killed off and recreated as file changes happen, otherwise hot-reload would be broken.
I think that would lead to the best performance since container creation overhead, and volume mount overhead seem significant. Volume mount overhead alone is probably enough to keep response times over 1 second most of the time.

Does anyone have any workaround to speed up the execution time?

+1, considering when you run lambda function call, and invoke each other in local, there will be several entire lambda runtime creation life-cycle there, and it's takes long time.

+1

Hey all,
I just opened a PR that should really help the pain of 'slow'/'warm' invokes. I would love for people to chime in on the PR (I have deeper details of caveats and approach in the description of #1305). For any willing parties that want to give it a try and install the pr from source, I would love your feedback. We feel it is important for this change to be tested with real workflows to make sure we are hitting the need of you all. Thanks! 🎉

I've also made an attempt at this (#1319) - differs in that it keeps the container running constantly and invokes using docker exec instead of starting/stopping the container constantly.
lowers api gateway lambda latency from ~3s to ~0.2s

+1

The speed/time discussions here are all right on point - micronaut has largely solved the startup time issues that traditionally have made lambdas with JVM functions somewhat impractical, but the fresh-container-per-invocation is still a large impact.
But there's another consideration that I've recently run into, and that is the case where your lambda caches data for use between warm-starts.
For example, my app makes AWS SDK calls to secrets manager and other things that I want to avoid when possible.  So on a cold start I make those calls, but on a warm start I don't.  The current situation makes testing such things impossible in local.

+100

+1

+1

FWIW, I'm going to be pushing out some changes to https://github.com/lambci/docker-lambda in the next week that should support this out of the box.
Basically, each container can be configured (via an env var) to expose an HTTP interface, specifically the Lambda API – which means (after the first invoke), each invoke can hit a warm Lambda. Current testing on my Mac gives around 433 req/sec (2.3ms/req).
Assuming you have an index.js with a handler() in your current directory, you can try it out with:
docker run --rm -v $PWD:/var/task -e STAY_OPEN=1 -p 3000:3000 lambci/lambda:nodejs8.10-beta index.handler

(it won't print anything, but if it stays running... it's working)
Then you can invoke it (multiple times) using:
aws lambda invoke --endpoint http://localhost:3000 --no-sign-request --function-name doesnotmatter --payload '{}' output.json

Or simply just:
curl -d '{}' http://localhost:3000/2015-03-31/functions/myfunction/invocations

Very likely that the env var name will change, and probably the default port too – so don't get attached to those.
Will update you when I've pushed everything up 👍

@mhart
Hi!
any update on this?
Thanks!

@dgergely yup, plenty – 1.2k lines of Go, C#, Java, Python and JS to be precise: https://github.com/lambci/docker-lambda/pull/218

Already, 1.8k lines later, all runtimes are supported. I still want to clean up some code and make sure stdout/stderr are supported correctly in the new model.
I've pushed all images to -beta tags. Eg, lambci/lambda:ruby2.5-beta, lambci/lambda:dotnetcore2.1-beta, etc
The env var to use is DOCKER_LAMBDA_STAY_OPEN and the port by default is 9001 – going to make this configurable soon.

And then you can invoke using:
curl -d '{}' http://localhost:9001/2015-03-31/functions/myfunction/invocations

OR
aws lambda invoke --endpoint http://localhost:9001 --no-sign-request --function-name myfunction --payload '{}' output.json

If you don't supply DOCKER_LAMBDA_STAY_OPEN then everything should function as it currently does (some very minor changes for some runtimes, but none of them should be breaking)

Due to the way I've implemented it, sharing the api server among all the runtimes, it's slower than the custom implementation in my earlier test. I now get around 70 req/s. But this is still much faster than cold starting each time. It would be possible to optimize this, but potentially at the cost of maintainability.

Support for warm invokes has been pushed to all docker-lambda runtimes 🎉
The documentation above still stands, ie invoke with:
docker run --rm \
  -e DOCKER_LAMBDA_STAY_OPEN=1 \
  -p 9001:9001 \
  -v $PWD:/var/task \
  lambci/lambda:ruby2.5 \
  lambda_function.lambda_handler

All runtimes also have support for X-Amz-Log-Type: Tail (--log-type Tail if invoking from the aws CLI), as well as X-Amz-Invocation-Type: DryRun (--invocation-type DryRun) and X-Amz-Invocation-Type: Event (--invocation-type Event).
All old images are available at lambci/lambda:20191117-<runtime>, eg lambci/lambda:20191117-dotnetcore2.1 – in case ppl are encountering issues with the new images. However, I tried hard to ensure that sam invoke local should still function largely as it does today.

So, all that's left now is support for these warm invokes in aws-sam-cli 😸

Our team is just getting started with lambda but one of the initial roadblocks we encountered was the slow response from local API Gateway instance created using aws-sam-cli. On a system with 16GB memory, each invocation takes ~7 seconds. This makes development really painful.
Any estimates on how long before the feature is integrated into SAM CLI?

@mhart  In the command:
curl -d '{}' http://localhost:9001/2015-03-31/functions/myfunction/invocations

What does the URL depend on? I get 404 response from the server.

@ranjan-purbey use something like https://facebook.github.io/watchman/ – just restart the process whenever one of your files change

Added more documentation here: https://github.com/lambci/docker-lambda#running-in-stay-open-api-mode

@ranjan-purbey I added some documentation for developing and restarting whenever there are changes to your code: https://github.com/lambci/docker-lambda/#developing-in-stay-open-mode

I've actually added a watch mode to docker-lambda itself, instead of needing to rely on external file watchers to do the job for you. Just need to pass in DOCKER_LAMBDA_WATCH=1 to activate.
Update documentation here: https://github.com/lambci/docker-lambda#developing-in-stay-open-mode
You can also manually reload the handler by passing SIGHUP to the container.

While waiting on the fix, it's helpful to know that the docker pull command (as @sanathkr  mentioned above) can be skipped, and accounts for about half of the waiting.
My personal experience with local api gateway testing is that I can shave about 5 seconds off per request by simply passing --skip-pull-image on launch.
sam local start-api --skip-pull-image
That's a very simple fix you can make to your dev workflow to save some pain for now. Thanks @sanathkr !

@ranjan-purbey I added some documentation for developing and restarting whenever there are changes to your code: https://github.com/lambci/docker-lambda/#developing-in-stay-open-mode

Great work. I do not understand if this is intended for single API method, or complete API? Do I have to start Docker for every API method?

If sam is using the same docker image under the hood, would it theoretically be possible to just pass the DOCKER_LAMBDA_STAY_OPEN=1 variable via sam environments.json?
Right now I observed that for some reason I cannot randomly add any variables to environments.json, just some that I defined before in the template.yaml.

Are there any updates or is there a timeline on this? This is the single biggest blocker for us (and I can imagine for many others) to do more with AWS Lambda because this makes it almost impossible to develop and test stuff locally. Even with --skip-pull-image, a delay of ~5 seconds for each request makes it just unusable. Also there is the problem with global context not being preserved.
I understand that features must be prioritized but I am having a hard time to understand that everything that is running on lambda cannot be tested locally is not a high priority issue. Or am I missing something?

I have solved this trouble by moving away from Lambda to Node Express
Dne st 15. 4. 2020 12:50 uživatel flache<EMAIL_ADDRESS>napsal:

Are there any updates or is there a timeline on this? This is the single
biggest blocker for us (and I can imagine for many others) to do more with
AWS Lambda because this makes it almost impossible to develop and test
stuff locally. Even with --skip-pull-image, a delay of ~5 seconds for
each request makes it just unusable. Also there is the problem with global
context not being preserved.
I understand that features must be prioritized but I am having a hard time
to understand that everything that is running on lambda cannot be tested
locally is not a high priority issue. Or am I missing something?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/aws-sam-cli/issues/239#issuecomment-613966758,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQWNN5BD2AETHPMBI3KXULRMWGQTANCNFSM4EJNN3UA
.

Update: The team is working on other prioritizes at the moment. We know the time it takes for invoking locally is a pain point for many and we have plans to address it in the future. We do not have an ETA as of now.

@flache
I've moved away from sam as it seems to not play so well with cdk at the moment, see https://github.com/awslabs/aws-sam-cli/issues/1911. I worked around it having an app that I run on docker locally but let cdk deploy it. Therefore  I just use different application entries, which are not so different at all.
// lambda entry
import { Response, Request } from 'express';

const awsServerlessExpress = require('aws-serverless-express');
const express = require('express');

const app = express();
const handler = (req: Request, res: Response): void => {
  try {
    app(
      req,
      res,
      (err: { status: number; statusCode: number; message: string }) => {
        if (err) {
          if (!res.headersSent) {
            res.statusCode = err.status || err.statusCode || 500;
            res.setHeader('Content-Type', 'application/json');
          }
          res.end(JSON.stringify({ errors: [{ message: `${err.message}` }] }));
          return;
        }
        if (!res.finished) {
          if (!res.headersSent) {
            res.statusCode = 404;
          }
          res.end(`'${req.url}' not found`);
        }
      },
    );
  } catch (err) {
    res.end(JSON.stringify({ errors: [{ message: `${err.message}` }] }));
  }
};

const server = awsServerlessExpress.createServer(handler, undefined);
exports.handler = (event: unknown, context: unknown): unknown =>
  awsServerlessExpress.proxy(server, event, context);

// docker entry
import express from 'express';

const main = async () => {
  const app = express();

  app.listen(5000, '<IP_ADDRESS>');
};

try {
  void main();
} catch (e) {
  console.error('Fatal error occurred starting server!');
  console.error(e);
  process.exit(101);
}

I have built a whole graphql service like that, and run it for a few weeks on AWS now. Seems to be fine.

For those who are very comfortable with Docker and docker-compose, I created a proxy image that works with the underlying SAM (lambci) images and can bring your lambda function into existing docker-compose workflows as a long-lived function. https://github.com/elthrasher/http-lambda-invoker

I have personally switched from AWS Lamda to NodeJS+Express+nodemon and my productivity and happiness boosted.

Spent the last week writing a CLI tool to help with this issue, just 2 days ago I published the first version.
It's available in npm for download and installation. It provides both DOCKER_LAMBDA_STAY_OPEN and DOCKER_LAMBDA_WATCH environment variables to the underlying containers, mitigating cold starts after the first invocation and watching code changes.
I think the tool is easy to use (takes one command to run your api locally) but it's in a very early stage. It works very well for my APIs but I'm pretty sure I didn't take all use cases into consideration. So, give it a go, report any issues you find and please leave some feedback.

@duartemendes that tool is amazing! Congratulations and let me know if you need any help.
Does your tool currently support layers?

Thanks @S-Cardenas. It doesn't but it's something I'm happy to take a loot at 👍

This is really a road blocker for this technology for us. Too painfully.
It is not sustainable to wait 10 seconds per each request during development. Without any action on this, I think that we have to reconsider our approach to this technology.

Update: We have prioritized some work that will help with the slow request time and provided a better warm invoke experience. I do not have timelines or ETAs to share at this point but wanted to communicate that we are starting to look at what we can do in this space.

@jfuss any updates?

I'm very excited to see this feature.

@jfuss any news?

Ditto. Would be great if this was officially released. Currently using https://github.com/elthrasher/http-lambda-invoker as a substitute.

🤞 Let's hope we can see this soon

Seems like it's getting very close to being approved and merged. Would love to get a notification when/if it does.

Fingers crossed this is soon added

This feature has been added to the newest release (https://github.com/aws/aws-sam-cli/releases/tag/v1.14.0) 🎉

(As @kaarejoergensen mentioned 😄 ) Happy to inform that, this has been released with v1.14, resolving the issue.


CLI panicking while doing cf app after app scale down.

$ cf scale cf-env -i 50
Scaling app cf-env in org htipl / space testbed as admin...
OK
$ cf app cf-env
Showing health and status for app cf-env in org htipl / space testbed as admin...

OK

requested state: started
instances: 50/50
usage: 128M x 50 instances
urls: cf-env.<IP_ADDRESS>.xip.io
last uploaded: Thu Apr 9 11:37:21 UTC 2015
stack: lucid64

      state      since                    cpu    memory      disk      details
#0    running    2015-04-10 11:32:00 AM   0.0%   0 of 128M   0 of 1G
#1    running    2015-04-10 12:13:24 PM   0.0%   0 of 128M   0 of 1G
#2    running    2015-04-10 12:13:03 PM   0.0%   0 of 128M   0 of 1G
#3    running    2015-04-10 12:13:48 PM   0.0%   0 of 128M   0 of 1G
   --- removed unnecessary lines for brevity ---
#45   starting   2015-04-10 12:14:43 PM   0.0%   0 of 128M   0 of 1G
#46   starting   2015-04-10 12:14:43 PM   0.0%   0 of 128M   0 of 1G   insufficient resources
#47   starting   2015-04-10 12:14:43 PM   0.0%   0 of 128M   0 of 1G   insufficient resources
#48   starting   2015-04-10 12:14:43 PM   0.0%   0 of 128M   0 of 1G   insufficient resources
#49   starting   2015-04-10 12:14:43 PM   0.0%   0 of 128M   0 of 1G   insufficient resources

When we decrease the scale count
We get this kind of Panic:
$ cf scale cf-env -i 40
Scaling app cf-env in org htipl / space testbed as admin...
OK
$ cf app cf-env
Showing health and status for app cf-env in org htipl / space testbed as admin...

        Aww shucks.

        Something completely unexpected happened. This is a bug in cf.
        Please file this bug : https://github.com/cloudfoundry/cli/issues
        Tell us that you ran this command:

                cf app cf-env

        using this version of the CLI:

                BUILT_FROM_SOURCE

        and that this error occurred:

                runtime error: index out of range

        and this stack trace:

                goroutine 16 [running]:
        main.generateBacktrace(0x0, 0x0)
                /root/.gvm/pkgsets/go1.3.1/global/src/github.com/cloudfoundry/cli/main/main.go:177 +0xcf
        main.handlePanics(0x7f50db6c6a50, 0xc208045960)
                /root/.gvm/pkgsets/go1.3.1/global/src/github.com/cloudfoundry/cli/main/main.go:161 +0x15e
        runtime.panic(0xa45760, 0x1bf99bc)
                /root/.gvm/gos/go1.3.1/src/pkg/runtime/panic.c:248 +0x18d
        github.com/cloudfoundry/cli/cf/api.(*logNoaaRepository).GetContainerMetrics(0xc208159310, 0xc20810dcb0, 0x24, 0xc208460000, 0x28, 0x28, 0x0, 0x0, 0x0, 0x0, ...)
                /root/.gvm/pkgsets/go1.3.1/global/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/api/logs_noaa.go:65 +0x307
        github.com/cloudfoundry/cli/cf/commands/application.(*ShowApp).ShowApp(0xc2081c4240, 0xc20810dcb0, 0x24, 0xc208187a38, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
                /root/.gvm/pkgsets/go1.3.1/global/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/app.go:112 +0x7ea
        github.com/cloudfoundry/cli/c

Aww shucks. Thanks for filing this bug @savitaashture!

This bug is scheduled to be addressed in the next sprint.


Remove android.permission.BLUETOOTH from Manifest

It seems this library is asking unnecessarily for Bluetooth permissions on android:
https://github.com/yamill/react-native-orientation/blob/master/android/src/main/AndroidManifest.xml#L4
Can we remove this?
As a workaround, for now, you can update the application manifest in your app with the following:
android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"

<!-- Remove Bluetooth permissions (from react-native-orientation) -->
<uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove" />

</manifest>

Note: You need to add the xmlns:tools="http://schemas.android.com/tools" else you'll get an error:
[Fatal Error] :13:88: The prefix "tools" for attribute "tools:node" associated with an element type "uses-permission" is not bound.

FAILURE: Build failed with an exception.

* What went wrong:
Exception while parsing the supplied manifest file /app/android/app/src/main/AndroidManifest.xml
> The prefix "tools" for attribute "tools:node" associated with an element type "uses-permission" is not bound.

Duplicate of #86


EF Core 2.2.4 doesn't always seem to copy Microsoft.Extensions.DependencyInjection.Abstractions to bin folder in .Net projects

I use .Net projects that make use of EF Core.  Since the new version 2.2.4 of EF Core in some projects (not all) I encounter a new issue that the object Microsoft.Extensions.DependencyInjection.Abstractions.dll (11-11-2018) and its xml counterpart are not copied to the bin folder when compiling the project. I tried some things but until now the only way to solve this problem I found is manually copying the two objects to the bin folder. I'm relatively sure (lets say 90%) that the problem is new and is in some vague way related to the introduction of EF 2.2.4

### Further technical details
EF Core 2.2.4.version:
Database Provider: (e.g. Microsoft.EntityFrameworkCore.SqlServer)
Operating system:  IDE: (e.g. Visual Studio 2019 16.1)

@JRBonnema Can you post a project/solution that demonstrates what you are seeing so that we can investigate?

@acjvickers :
ApplicationControlDMLibrary.zip

I see that I mistakenly closed the issue. See if I can reopen the issue by posting this comment

@JRBonnema Restores and builds fine for me in VS2017 and VS2019, and the assemblies are coped to bin. What might be different on your machine?

Just like you did, I downloaded the zipped project that I uploaded to Github yesterday and created a new project with it. There is indeed something different on my machine since now I get two MSB3245 warnings. In addition to Microsoft.Extensions.DependencyInjection.Abstractions it can also not find Microsoft.Extensions.Configuration.Abstractions.  I did a more extensive internet search to see if other people have encountered similar problems in the last month. This is in not the case. I will close the issue. Thanks for your time.


QualityQuery statistics are written to hdf5 file without the  group

Describe the bug
❯ h5dump -n gamma-diffuse_with_images_00.dl2.h5 | grep statistics
 dataset    /dl1/service/image_statistics
 group      /dl2/service/tel_event_statistics
 dataset    /dl2/service/tel_event_statistics/HillasReconstructor

These should have the prefix geometry / energy, right?

@kosack I think this is a question for you?

it's from the machine learning tools, but yes it should have a prefix since there are multiple quality queries.


Support PAFER API treadmills

A user on Yves Debeer's blog (https://yvesdebeer.github.io/Treadmill-Bluetooth/#comment-5444484839) has a so called BH iBoxter Treadmill. It is supported by an i.Concept application. It looks like it uses a proprietary protocol called PAFERS. I registered to the PAFERS developer site (http://developer.pafers.com/) and they have Android and iOS support (providing linked libraries in .a format). I'm not sure if there's a definitive API description yet to get around the .a file for an own implementation. Otherwise this will need a flutter plugin to integrate the native libraries.
Other links:

Zwift forum: https://forums.zwift.com/t/pafers-bh-i-conceps-integration-in-zwift/13662
rfit application: https://play.google.com/store/apps/details?id=xyz.rfit.fitness.workout.pafers.pro (supported treadmills - BH LK700Ti, BH LK500Ti, BH S7Ti, BH S5Ti, BH S3Ti, BH S1Ti, Taurus T10.3 pro, Taurus 9.9 (2018), Toorx Endurance
Uwe Boehm's offering: http://ergo.ub-online.de/index.php/en/download also mentions other PAFER devices  BH Spada 2, Christopeit Blue T1

Hi @MrCsabaToth ,
Have you been able to make some progress on this topic ?
I already use TrackMyIndoorWorkout on my Hammer bike ergometer, and I love using this application.
However, I'm not satisfied with apps compatible with my BH Fitness i.Boxster (very few of them), which, as you described, uses the PAFERS protocol. PAFERS support in TMIW would be such an improvement !

Hi @MrCsabaToth , Have you been able to make some progress on this topic ? I already use TrackMyIndoorWorkout on my Hammer bike ergometer, and I love using this application.
However, I'm not satisfied with apps compatible with my BH Fitness i.Boxster (very few of them), which, as you described, uses the PAFERS protocol. PAFERS support in TMIW would be such an improvement !

No progress for two main reasons:

I don't have an access to PAFERS machine, so reverse engineering the PAFERS protocol is out of the question and probably too much undertaking anyway due to it's versatile machine support.
Establishing a Flutter plugin which'd utilize the native libraries PAFERS provide would still mean weeks of work. The biggest bottleneck is time. Since this issue is several years old I check on pub.dev if there's any PAFERS plugin, but no yet. Maybe we could aim low and establish an Android only plugin with limited feature set (what my app needs) and then the FOSS community may add iOS support and broader feature coverage? But that's a lot of time.

There's maybe a 3rd option: if you are able to reverse engineer your specific treadmill's communication byte-by-byte, then I can formulate a device for that specific treadmill (I can sort it apart by manufacturer and maybe BT name). And then we don't have to go through the whole PAFERS Flutter plugin thing. This is if you know how to either use nRF Connect if you can poll the data via Bluetooth services and characteristics, or do some BT snooping.
I'd still like to add that support so much but I need help. (I went so far for this application that I contributed features to Flutter Blue Plus (for example the latest appearance handling in 1.13.5), or I forked 3 plugins https://pub.dev/publishers/csaba.page/packages)
I hope I'll win the lottery and then I'll close off a ton of features like this one. I'll go to Vegas next month, Fortuna might bless me. If you have Flutter skills I'm happy to consult and direct you. Or also if you debug the data stream specific to your treadmill. This is what the FixedLayoutDeviceDescriptor is good for, I'd subclass that and configure how the bytes are.

I did some BT snooping on my wife's Android tablet running Kinomap.
Here's what I did :

enabled BT HCI snooping
disabled/enabled BT
started Kinomap
started a free training
pushed the start/stop button on the treadmill
clicked on "+" button in Kinomap to increase incline (did not work, dunno why)
clicked on "-" button in Kinomap to decrease incline (did not work, dunno why)
clicked on "+" button in Kinomap to increase incline (treadmill increased incline to 1%)
clicked on "-" button in Kinomap to decrease incline (treadmill decreased incline to 0%)
pushed "4kph" button on treadmill
pushed "2kph" button on treadmill
pushed the start/stop button on the treadmill
exited Kinomap
waited for the treadmill display to get back to disconnected state
disabled BT HCI snooping

I also installed nRF Connect on my phone, managed to connect to the treadmill, but didn't manage to set the right value in the "Notify" characteristic (it's late, need to go sleeping).
I attached the trace here.
btsnoop_hci_filtered.log

The problem is to identify which bytes are which I'd need the readings on the console (cadence, speed / pace, heart rate, time, distance, possibly watts, and whatever else is there) at those exact times so I can pair them with the byte streams, otherwise I don't know what I'm seeing.
Usually what I did with bikes I set low cadence and high resistance, and then after some time I switch over and paddle with very high cadence and lower resistance. This way I could distinguish at least the watt readings and the cadence. Also note time, distance.
With treadmill it's harder to set resistance.
The log should be in cfa format and there's a Windows software to view it, can you identify the bytes?


Automating docker push when a new version is published

It could be useful to automate the docker push when a new version of phparkitect is published.
With our GitHub actions it could be possible I think.
At the moment you need manually to build new image with new tag like this
docker image build -t phparkitect/phparkitect:0.1.0 .

And push it.
docker push phparkitect/phparkitect:0.1.0

Same thing for latest version:
docker image build -t phparkitect/phparkitect:latest .
docker push phparkitect/phparkitect:latest

closed by #99


Modify Javascript

I noticed the javascript file is not there and would wish to add it

Alright 👍
On Sat, Aug 20, 2022, 8:52 AM Cassandra Umeh @.***>
wrote:

I noticed the javascript file is not there and would wish to add it
—
Reply to this email directly, view it on GitHub
https://github.com/Hexpee/Team-5-phonie/issues/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMNWEOVMMSSMZJL62IESAHTV2CFFNANCNFSM57C2FGOQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>