Vb known noise model

This is to add a flag of update_noise to the inputs of VB inference.
This flag must be a dictionary whose keys are the same as noise-groups'. Also, the default is "True": all noises are updated by default.

Thanks for providing this pull request! I also find that useful, e.g. to compare with sampling where you also have the option of using a constant noise. I added:

You may now also pass update_noise=False to skip all noise updates
Omit the single noise group in the test case and directly use vectors/Gamma
Provide "negative" test case for "given_noise" to show that the test would indeed fail, if we perform the noise update.

Merge, if you like!


IMatToaster.Add should be thread-safe

Using ASP.Net Core 3 Server Side Blazor (Razor Components) with MatBlazor 1.9.0
When I try to add a new toaster in an asynchronous way (in my example it's an event handler) it can happen, that the call throws an InvalidOperationException: Collection was modified; enumeration operation may not execute. This is likely because the Add call tries to access a collection in a foreach loop which was modified in another thread. Unluckily it's hard to repeat this error as it could happen, but does not have to happen.
The full stack-trace (with "Debugging my code only" on :/ )

Unhandled exception. System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List1.Enumerator.MoveNextRare()    at System.Linq.Enumerable.Any[TSource](IEnumerable1 source, Func2 predicate)    at MatBlazor.MatToaster.Add(String message, MatToastType type, String title, String icon, Action1 configure)
at XXX.Components.Map.GISComponentBase.Mqtt_OnNewOnNewSensorDataRX(Object sender, SensorData e) in d:...\Components\Map\GISComponent.razor.cs:line 172
at System.Threading.Tasks.Task.<>c.b__139_1(Object state)
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()

@maxreb ,
This issue should now be resolved in the latest MatBlazor version. Can you confirm this?


Dynamic Forms: Button - Validation error goes to home page

Original Orchard Discussion on Codeplex.
I noticed that when submitting a Dynamic Form (i.e., clicking the Submit button), instead of the validation error showing up on the page which contains the form it redirects to the home page. Hovering over the button itself shows "/Orchard.DynamicForms/Form/Submit" as the URL.
Repro:

Create a Dynamic Form using the Orchard.Layouts feature with a simple text field and a button for submission.

Enable client side validation.
The text field itself is set to required.
NOTE: For simplicity (and in case it was the cause of the error) I removed a Validation Summary element and an actual Validation Message element tied to the text field from the form. However, the error still persists.
NOTE: I set the form to Store Submission and also to show a Notification when submitted. I did not include a redirect link.

Navigate to page containing the form.
Submit without filling in the text field.
Redirects to home page.
Returning to the page containing the form using a link on the home page the validation error shows up.

Similar issue which was marked as a bug: https://github.com/OrchardCMS/Orchard/issues/5778

It seems @sfmskywalker fixed it with this commit c8f2c27
on 1.9.x


Log4j2 vulnerability fix for Anchore Engine

We deployed Anchore Engine as docker container :
anchore-devsecops-anchore-engine-analyzer -- anchore-engine:v0.8.1
anchore-devsecops-anchore-engine-simplequeue -- anchore-engine:v0.8.1
anchore-devsecops-anchore-engine-api -- anchore-engine:v0.8.1
anchore-devsecops-anchore-engine-catalog -- anchore-engine:v0.8.1
anchore-devsecops-anchore-engine-policy -- anchore-engine:v0.8.1
anchore-devsecops-postgresql -- postgres:9.6.18
Is Anchore Engine impacted by recent log4j2 vulnerability CVE-2021-44228 ? If yes, what are the recommendations to get this fixed in Anchore Engine deployed to Cloud as container ?

Hi @LearnitRm ! No, Anchore Engine is not impacted by CVE-2021-44228 because it does not include any java code nor any log4j code.

thankyou for the confirmation.


[improve][admin] Print error log if handle http response fails

Motivation
When users are calling pulsar-admin API, and there is an internal error( such as a deserialize JSON error), there is no error log.
You can test it this way:

add a method getMsgRateIn() for TopicStatsImpl, and return a String value(such as abc), which will make the response.msgRateIn as a String value abc.
call pulsar-admin topics stats

You will get nothing, and no error log is printed.

Modifications
Print error log if handle HTTP response fails
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository: x

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

Project coverage is 74.33%. Comparing base (bbc6224) to head (368653b).
Report is 712 commits behind head on master.

Files with missing lines
Patch %
Lines

...client/admin/internal/http/AsyncHttpConnector.java
50.00%
2 Missing :warning:

Additional details and impacted files

@@             Coverage Diff              @@
##             master   #23563      +/-   ##
============================================
+ Coverage     73.57%   74.33%   +0.75%
- Complexity    32624    34327    +1703
============================================
  Files          1877     1943      +66
  Lines        139502   147056    +7554
  Branches      15299    16210     +911
============================================
+ Hits         102638   109310    +6672
- Misses        28908    29327     +419
- Partials       7956     8419     +463

Flag
Coverage Δ

inttests
27.65% <50.00%> (+3.07%)
:arrow_up:

systests
24.37% <50.00%> (+0.04%)
:arrow_up:

unittests
73.72% <50.00%> (+0.87%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines
Coverage Δ

...client/admin/internal/http/AsyncHttpConnector.java
85.15% <50.00%> (-1.27%)
:arrow_down:

... and 655 files with indirect coverage changes


Syntax error when I create a new log FileChannel with monthly rotation strategy

Hi
Recently, I need add a new type of log file so that I create a new FileChannel like this:

which uses rotation strategy of monthly and CRITICAL log level. I also add new LOG_CRITICAL macro. All of these work correctly for the first day. But yesterday the engine says "DB::Exception: Syntax error: Invalid DateTimeString:Sunday, 10 Mar 19 09:23:15 GMT."

This date information is written into log file according to rotation strategy. So I guess there may be something wrong when engine writes new logs to the file.

Hi, I found POCO has fixed this bug in their repo, Sun -> Sunday. But clickhouse's extra poco lib has not update newest repo. Can you update extra poco submodule as soon as possible. Thanks.


Updated validation.py python script.

Updated validation.py python script.
Fixed the behaviour of validation_user function in validation.py
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


Release Google.Cloud.Compute.V1 version 1.0.0-alpha01

Changes in this release:
First alpha release. Please note that this library is still in early testing phases, and is not suitable for production workloads.

Note: we'll want to merge #6462 first.

Thanks - will just get the all clear from the REGAPIC team before merging.

Created release for Google.Cloud.Compute.V1-1.0.0-alpha01


pgmigrate new doesn't work with absolute path to migrations directory

Steps to reproduce
brew install peterldowns/tap/pgmigrate
git clone https://github.com/peterldowns/pgmigrate.git
cd pgmigrate/example
docker-compose up -d
pgmigrate new --migrations $(pwd)/migrations

Expected behaviour: new migration created
Actual behaviour:

Output
Usage:
  pgmigrate new [flags]

Examples:
  # Just come up with the filename, don't create it
  pgmigrate new
  # Use a specific name => "0001_my_example.sql"
  pgmigrate new my_example
  pgmigrate new --name my_example
  # Only print the file name, suitable for passing to other programs
  pgmigrate new --bare
  # Create the migration file as well as printing its name
  pgmigrate new --create

  # Create a new migration file and send it to another program
  pgmigrate new vim_user_example --create --bare | xargs vim

Flags:
  -b, --bare          if true, only print the created migration file path
  -c, --create        if true, create the migration file
  -h, --help          help for new
  -n, --name string   the name of the new migration (default 'generated')

Global Flags:
      --configfile string   [PGM_CONFIGFILE] a path to a configuration file
  -d, --database string     [PGM_DATABASE] a 'postgres://...' connection string
      --log-format string   [PGM_LOGFORMAT] 'text' or 'json', the log line format (default 'text')
  -m, --migrations string   [PGM_MIGRATIONS] a path to a directory containing *.sql migrations
      --table-name string   [PGM_TABLENAME] the table name to use to store migration records (default 'pgmigrate_migrations')

error: Rel: can't make /Users/vvkh/Projects/pgmigrate/example/migrations/00004_generated.sql relative to .

Thank you for the extremely clear bug report! This is a mistake, the command should work with absolute paths. I'll follow up on the PR you've submitted.

Completed thanks to your PR!


Path to script folder appears to be invalid

I posted about this once before.
Recently the converter suddenly stopped working with CouchPotato and i'm receiving this message:
10-22 14:46:24ERROR[              PostProcess] Path to script folder appears to be invalid.
I have the script located in Applications under a folder "mp4_automator" - so in the main.py of for custom_plugins i have the path set as "/Applcations/mp4_automator/"
Not sure what happened or what i'm doing wrong.

I actually just overhauled the main.py file and incorporated some updates to the script that fixes this. It's a problem that developed due to switching over to using pip packages. I actually pushed the update like 5 minutes before I saw your issue haha
Just update your script and main.py file in the custom_plugin directory (remember you have to shut down couch potato, delete main.py and main.pyc, update with the new version, then relaunch).
Let me know if its resolved after updating.

491d29aedd72403825cc6b56ffd7fa134578280f

After the update, that issue has been resolved.
it appears though that the MKV is not converting to MP4, no error is being thrown, but nothing is actually happening on the backend.

Can you check the info.log file in the script directory and see if theres any references to CouchPotatoPostConversion that are being called? Or any relevant errors? The new change shifts most of the logging away from couchpotato and back to the internal logging of the script.

Did some testing on my macbook and I found some problems that weren't occuring on my initial test machine (Windows). Just pushed a new update that I think should address the problem. You will however need to go through the update process again, as it was a change to the main.py file (shutdown CP, delete main.py and main.pyc, replace, restart CP). Give it a try and let me know.

it does not appear to be logging anything specifically for CouchPotato.
I removed the log file, relaunched CouchPotato, the file moves, the script is found, but no log file is generated.

See my last post I made just a few seconds ago ^
The issue was the postCouchPotato.py wasn't being executed due to certain issues under OSX/Linux (using Shell=True and permissions problems). Update and try again if you could.

No change here, PostProcess still executes, but file is still not converting to MP4.
info.log is also still not being generated either.

Can you post your main.py script like you did before? Just wanna make sure nothing is wrong there

I guess next I would double check your permissions on postCouchPotato.py and make sure it has execute permissions. If that doesn't work I'll write up a debugging script that will help figure out why its not able to execute hopefully

Also just make sure that when you launch manual.py you're not getting any errors/problems

I did a fresh install of OS X on another machine and installed only CouchPotato and this script, I'm seeing the same problem.
All permissions are set to execute across the board and Manual.py runs without issue.

Here's a modified version of main.py with some more debugging that should help figure out what's going on:
from couchpotato.core.event import addEvent
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
import traceback
import os
import subprocess

log = CPLog(__name__)

# Edit to point to the absolute path where the rest of the script resides
path = "C:\\Scripts\\"

class PostProcess(Plugin):

    def __init__(self):
        addEvent('renamer.after', self.callscript)

    def callscript(self, message = None, group = None):

        log.info('MP4 Automator - Post processing script initialized')

        exec_me = os.path.join(path, "postCouchPotato.py")

        try:
            imdbid = group['library']['identifier']
        except:
            imdbid = group['identifier']

        moviefile = group['renamed_files']
        original = group['files']['movie'][0]

        success = True

        for inputfile in moviefile:
            try:
                log.info("Executing post processing on file %s" % inputfile)
                process = subprocess.Popen([exec_me, imdbid, inputfile, original], shell=(os.name=='nt'), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
                while True:
                    output = process.stdout.readline()
                    if output == '' and process.poll() is not None:
                        break
                    if output:
                        log.info(output.strip())
                    rc = process.poll()
            except:
                log.error("Failed to execute post processing on file %s" % inputfile)
                log.error(traceback.format_exc())
                success = False

        return success

Heres the CouchPotato log with the modified main.py.

Looks like when I pasted that into the comment I screwed up the tab for the final return line, so that error you got isn't helpful. My bad. Here is the correct code that will hopefully produce a more meaningful error messages. Sorry you have to go through it all again
from couchpotato.core.event import addEvent
from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin
import traceback
import os
import subprocess

log = CPLog(__name__)

# Edit to point to the absolute path where the rest of the script resides
path = "C:\\Scripts\\"

class PostProcess(Plugin):

    def __init__(self):
        addEvent('renamer.after', self.callscript)

    def callscript(self, message = None, group = None):

        log.info('MP4 Automator - Post processing script initialized')

        exec_me = os.path.join(path, "postCouchPotato.py")

        try:
            imdbid = group['library']['identifier']
        except:
            imdbid = group['identifier']

        moviefile = group['renamed_files']
        original = group['files']['movie'][0]

        success = True

        for inputfile in moviefile:
            try:
                log.info("Executing post processing on file %s" % inputfile)
                process = subprocess.Popen([exec_me, imdbid, inputfile, original], shell=(os.name=='nt'), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
                while True:
                    output = process.stdout.readline()
                    if output == '' and process.poll() is not None:
                        break
                    if output:
                        log.info(output.strip())
                    rc = process.poll()
            except:
                log.error("Failed to execute post processing on file %s" % inputfile)
                log.error(traceback.format_exc())
                success = False

            return success

Looks like you're still having indentation problems, maybe your text editor isn't handling things properly.
I just uploaded a copy to my dropbox, download and use this main.py file instead
https://www.dropbox.com/s/hlc32hq0qkvbqaf/main.py?dl=0

Hm so that fixed the syntax errors but didn't provide any additional information like it should have. I was hoping we'd get some output from the script indicating an importerror or something pythonic in nature causing the problem, but it looks like its not even getting that far.
Just wrote another custom main.py that may give us more info, this is turning out to be challenging to solve, I apologize.
Here is the new one:
https://www.dropbox.com/s/hlc32hq0qkvbqaf/main.py?dl=0

It's no problem, appreciate the support!

Looks like it's erroring out because babelfish isn't installed. Try running pip install babelfish and see where that gets you. If babelfish is already installed we'll have to further investigate.
On Tue, Oct 27, 2015 at 3:26 PM, Tyler Hamilton<EMAIL_ADDRESS>wrote:

It's no problem, appreciate the support!

Reply to this email directly or view it on GitHub:
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/351#issuecomment-151617280

Looks like it's already installed and up to date.

I'm wondering if Python is being run in an isolated environment where babelfish isn't installed? I'm not sure what would cause this honestly. Maybe uninstall and reinstall babelfish.
On Tue, Oct 27, 2015 at 10:49 PM, Tyler Hamilton<EMAIL_ADDRESS>wrote:

Looks like it's already installed and up to date.

Reply to this email directly or view it on GitHub:
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/351#issuecomment-151706078

is babelfish supposed to be located within the script folder? because it isn't.

if i put a copy of babelfish within the script folder i receive this error.

Babelfish shouldn't be located in the script folder, it should be a module installed via PIP, I suspect that for some reason the version of python being executed by CouchPotato to kick off the processing is failing because its running in a different python environment than where all your required modules are installed. Not sure why that is exactly but I'm looking into it.

I whipped up another main.py file, give it a try:
https://www.dropbox.com/s/hlc32hq0qkvbqaf/main.py?dl=0
The problem is that python scripts executed under CouchPotato use a different pythonpath and therefore don't have all the preinstalled packages that the script requires. I'm not able to reproduce this problem on my Mac though. The other thing I want you to try, at least if that main.py script doesn't work, is the following:

open up terminal
run /usr/bin/env python which should bring up a python terminal
type import babelfish and see if you get an error or if it is successful
if you get an error, type import sys and then print(sys.path) and send me the output

No errors on import babelfish.
also looks like I'm getting the same babelfish error with the new main.py - any suggestions of something else to try? What version of OS X are you running?

You'll need to delete that version of babelfish you put in your script directory.
Also try opening up terminal and running export PYTHONPATH and then retesting with CP.
I'm running El Capitan.

The other option if we can't get this sorted is to run CouchPotato from source rather than the precompiled binary, which I think would resolve the issue since it would all be under the one python environment.

Good news! I believe I have fixed the issue. I was finally able to replicate the problem which sped up my ability to debug and try things very quickly.
Just pushed a new change to the master build with a new main.py in the setup folder.
The problem was being created because CouchPotato, which runs in an isolated python environment separate from the main environment where all the dependent packages have been installed, was passing its environment to the new instance that was supposed to be created. This prevented the script from accessing all its dependencies since it was still trapped in the couch potato environment. This problem only happens on OSX and only when using CouchPotato as a compiled application, not when running from source, which is why it took me forever to replicate the problem. The new update blocks the environment from being passed and the default environment is launched instead, fixing everything.
Give it a test and let me know if its working. All seems well on my end.

Installed new version of script, receiving these errors now.

Did you remember to modified the path variable in the new main.py file?

whoops, sorry about that.
looks like I'm still getting the babelfish error though.

Damn, I really thought that would do it, any way I can just remote into your machine and test? Cause now I have no idea why its not working lol

I actually installed OS X to an external drive and installed only this script and couch potato, the post processing functions fine.
I think i'm just going to clean install my internal drive and see how that goes.
Thanks again!

Ah nice, so you’re having at least some success with the latest changes then, that’s good. Let me know if you’re able to get it running on your main setup, but I think its solved. My only other thought is that maybe things are being installed under a virtualenv on your main box and that’s creating problems, but at this point I think that’s less likely. But keep me posted so we can close out this issue.
On Wed, Oct 28, 2015 at 8:41 PM, Tyler Hamilton<EMAIL_ADDRESS>wrote:

I actually installed OS X to an external drive and installed only this script and couch potato, the post processing functions fine.
I think i'm just going to clean install my internal drive and see how that goes.
Thanks again!
Reply to this email directly or view it on GitHub:
https://github.com/mdhiggins/sickbeard_mp4_automator/issues/351#issuecomment-152041523

looks like we're all good! thanks again for all the support.

Excellent! Closing this out


Build failure: osl

Steps To Reproduce
nix build github:nixos/nixpkgs/21735d31cf4b091d69f5dd24d5a06a874eb33499#osl

Build log
CMake Error at /nix/store/ljk2a5s49msk252is7zw3kwq5dxdbkdr-openimageio-<IP_ADDRESS>-dev/lib/cmake/OpenImageIO/OpenImageIOConfig.cmake:43:
  Parse error.  Function missing ending ")".  End of file reached.
Call Stack (most recent call first):
  src/cmake/checked_find_package.cmake:127 (find_package)
  src/cmake/externalpackages.cmake:107 (checked_find_package)
  CMakeLists.txt:172 (include)

CMake Error at src/cmake/checked_find_package.cmake:127 (find_package):
  find_package Error reading CMake code from
  "/nix/store/ljk2a5s49msk252is7zw3kwq5dxdbkdr-openimageio-<IP_ADDRESS>-dev/lib/cmake/OpenImageIO/OpenImageIOConfig.cmake".
Call Stack (most recent call first):
  src/cmake/externalpackages.cmake:107 (checked_find_package)
  CMakeLists.txt:172 (include)

-- OpenImageIO library not found
--     Try setting OpenImageIO_ROOT ?
--     Maybe this will help:  src/build-scripts/build_openimageio.bash
CMake Error at src/cmake/checked_find_package.cmake:177 (message):
  OpenImageIO is required, aborting.
Call Stack (most recent call first):
  src/cmake/externalpackages.cmake:107 (checked_find_package)
  CMakeLists.txt:172 (include)

Additional context
/nix/store/ljk2a5s49msk252is7zw3kwq5dxdbkdr-openimageio-<IP_ADDRESS>-dev/lib/cmake/OpenImageIO/OpenImageIOConfig.cmake:43 rendered in micro:

bumping osl to <IP_ADDRESS>-dev did not work.
Applying https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/1742 did not work
Notify maintainers
@Hodapp87

Metadata

system: "x86_64-linux"
host os: Linux 6.1.55, NixOS, 23.05 (Stoat), 23.05.20231011.bd1cde4
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.13.5
nixpkgs: /nix/store/mbz4hixfgxq5b6vc0k3pp2iglcd4c353-source

I have verified that the problem exists with the current openimageio derivation even with version <IP_ADDRESS>, which was updated away from in June.
› rg <IP_ADDRESS> pkgs/development/libraries/openimageio/default.nix
19:  version = "<IP_ADDRESS>";

› nix build .#openimageio.dev -L
warning: Git tree '/home/space/repos/nixpkgs' is dirty

nixpkgs on  master via   on ☁  (eu-central-1) took 10s
› bat result-dev/lib/cmake/OpenImageIO/OpenImageIOConfig.cmake | rg 'define ZLIB'
        find_dependency(ZLIB 1.3.#define ZLIB_VERSION "1.3")  # Because OpenEXR doesn't do it

I guess somehow the ZLIB_VERSION is replaced improperly here, but I've got no idea what could be causing it, and I'm really confused why it's only become a problem recently, as it doesn't look like osl has been touched in the last 3 months either.

I've tracked it down to this commit updating zlib, and reverting it seems to fix it.
I also believe it's a cmake issue. Consider this CMakeLists.txt file
cmake_minimum_required(VERSION 3.25)

project(test)

find_package(ZLIB)

Output:
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/zlzz2z48s7ry0hkl55xiqp5a73b4mzrg-gcc-wrapper-12.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/zlzz2z48s7ry0hkl55xiqp5a73b4mzrg-gcc-wrapper-12.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /nix/store/s5gzrzha72q79v92wqq61x9ir8xiwbxk-zlib-1.3/lib/libz.so (found version "1.3.#define ZLIB_VERSION "1.3"")
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/space/repos/tmp/build

Maybe because the header zlib.hchanged #define ZLIB_VERSION "1.2.13" to #define ZLIB_VERSION "1.3" (see diff? But if I'm reading the FindZLIB.cmake file correctly, I think it should just set the version to an empty string?
Either way, this patch seems to fix it
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/d
efault.nix
index 9fccef25da17..12ce729b97e9 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -38,7 +38,12 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=";
   };

-  postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
+  postPatch = ''
+    # TODO Remove next patch update
+    substituteInPlace zlib.h \
+      --replace '"1.3"' '"1.3.0"'
+  '' +
+  lib.optionalString stdenv.hostPlatform.isDarwin ''
     substituteInPlace configure \
       --replace '/usr/bin/libtool' '${stdenv.cc.targetPrefix}ar' \
       --replace 'AR="libtool"' 'AR="${stdenv.cc.targetPrefix}ar"' \

I don't think it's worth raising with zlib because with the next patch version they're going to fix it anyway. It might be worth warning them in advance of 1.4.
It's probably worth raising with cmake, because they will want to support all version, and then zlib won't have to care anymore either.

Maybe because the header zlib.hchanged #define ZLIB_VERSION "1.2.13" to #define ZLIB_VERSION "1.3" (see diff? But if I'm reading the FindZLIB.cmake file correctly, I think it should just set the version to an empty string?

Nice catch! One minor note: you are looking at cmake's master branch. It seems to be already fixed there as: https://github.com/Kitware/CMake/commit/903439495033da40f798db9ec064d9b16ea672fc
We'll need that backport to nixpkgs.


Updating format for Dart lint

Using Google's Style Guide I updated the Format

Thank you for the hard work, but I won‘t merge. I used that style on purpose because I find the Google style less readable.

Merged, TY

@matthinc no worries 👌🏻


sql: Make all sql.defaults cluster settings public

PR: https://github.com/cockroachdb/cockroach/pull/66688
From release notes:

All SQL-level cluster settings have been made public. [#66688][#66688] {% comment %}doc{% endcomment %}

This change is captured in the included cluster settings files.


Cannot specify localdisk diskAttributes.type

Sometimes, localdisk diskAttributes.type detected by hwameistor is not correct. Localdisk diskAttributes.type will be changed back if I modify it and restart ldm pod.
We should come up with a solution to cover this issue.

releated issue: https://github.com/hwameistor/hwameistor/issues/313

this #1138 is a workaround for fix wrong diskType detected for now.
example: modify diskType as SSD
$ kubectl patch ld  --type='merge'  <localdisk_name> -p '{"spec":{"diskAttributes": {"type": "SSD"}}}'


Add option to hide IP-column in URL-list if YOURLS is in private mode.

I think the column with the IP of the shortlink-creator is meant to have an idea who created a link.
But if url's can only be added by logged in users, this is not a that important info, at least not in the overview.
So it would be nice to have an option to hide that col. vor a better overview in the spirit of less is more...
PS:
Same could be said about the clicks-col for people not interested in stats within yourls (what would not apply to me).

This is left, once again, for plugin territory. Different users will have differents needs (multiple users, public instances, etc...)


Version Packages (beta)

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to beta, this PR will be updated.
⚠⚠⚠⚠⚠⚠
beta is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on beta.
⚠⚠⚠⚠⚠⚠
Releases
<EMAIL_ADDRESS>Major Changes

4f518be: Merged Spectrum and Express system set data. This is part of the Spectrum 2 work that will no longer have two separate systems.
The merge takes the keeps the value and uuid from spectrum.

Expanded report

Action
Time
Status
Info

🟩
RunTarget(tokens:test)
3s
Passed

Touched files
.changeset/happy-students-vanish.md
.changeset/pre.json
.github/workflows/deploy-docs.yml
.github/workflows/release.yml
.moon/toolchain.yml
.moon/workspace.yml
package.json
packages/tokens/CHANGELOG.md
packages/tokens/package.json
packages/tokens/src/color-aliases.json
packages/tokens/src/color-component.json
packages/tokens/src/layout-component.json
packages/tokens/src/layout.json
packages/tokens/src/semantic-color-palette.json
packages/tokens/src/typography.json
pnpm-lock.yaml
pnpm-workspace.yaml
tools/system-set-merge/README.md
tools/system-set-merge/moon.yml
tools/system-set-merge/package.json
tools/system-set-merge/src/index.js
tools/system-set-merge/test/index.test.js


Run log periodic system load on debug mode only

LogPeriodicSystemLoad was being called even if the endpoint was not running in debug mode which was causing a lot of unnecessary memory allocations.

This change is

test-me-please

test-me-please

Coverage increased (+0.07%) to 42.14% when pulling b5ac3b777401f7f58c30e4059c17cff770b3a820 on pr/log-periodic-systemload into 688699b277b81450ea0e5d6107353f02deff940b on master.

test-me-please

Good find!

Would be great to be a bit more specific on how much it saves ;-)

@tgraf it's hard to have a real % as there isn't a benchmark function for realizeBPFState. But I can tell you for around 4-5 minutes since cilium-agent started with 6 to 12 regenerations it made 20% of total allocations made by the program.


Incorporate qp_flexzboost

This PR does two main things.

Updates the dependency on Flexcode now that it is available via PyPI. I've added the dependency to pyproject.toml, and moved requirements.txt (and setup.py) to a new, temporary directory, archive. I tested this new set up by creating a new empty virtual environment and running pip install -e .; pip install .[dev];. The build and install completed without error. I then ran all the unit tests which passed as expected.
We take a new dependency on qp-flexzboost (also available via PyPI) and incorporate that in flexzboost.py:CatEstimator._process_chunk method. A new configuration parameter qp_representation is available, which will default to the baseline 'interp' if not provided. If the user provides the value flexzboost, the qp_flexzboost storage parameterization class will be used in place of the qp.interp parameterization. A new unit test was introduced to exercise this logic.

One thing to note:
This package has some secondary dependency on sklearn. After commit #bdaa1a0 the CI failed due to the sklearn brownout between xx:00 and xx:10 on the hour. Running the CI actions a second time later shows that they all pass.
It's clear that this package doesn't define a dependency on sklearn. But clearly one of this packages dependencies defines a dependence on sklearn.

I see partial case coverage causing codecov to fail (and I see that you set [tool.coverage.run] branch=True in the pyproject.toml to cover all cases for code coverage. I guess it doesn't like the if elif without an else?  I think maybe adding an ```
else:
raise KeyError("only interp or flexzboost are implemented as qp_representation")
or something like that to make codecov happy.


Document Cluster Upgrade Steps

This playbook also works for upgrading a cluster and all of its components.

Document steps in README.md on how to upgrade your cluster

Any progress on this issue?
Would be interesting to know the best way of upgrading the repo, the versions or the cluster...

You should be able to git pull latest and then rerun the repo, however the best way to upgrade kubernetes versions is by using https://github.com/rancher/system-upgrade-controller

going to close this since this is really just a bootstrapper and upgrades should typically be handled by another tool / process.


WIP: v0.0.1

Secret Setup Process:

#[update]
async fn set_secret(
    dao_address: String,    // The Ethereum DAO contract address
    secret_id: String,      // Unique identifier for the secret
    derivation_path: Vec<Vec<u8>>,  // Custom path for key derivation
) -> Result<(), String>

When a DAO wants to store a secret:

Verifies the DAO exists by checking if we can read its members from Ethereum
Stores metadata about the secret, including which DAO it belongs to
Creates a unique derivation path for this secret that will be used for key generation

Getting Encryption Key:

#[update]
async fn get_public_key(
    secret_id: String,
    requester_address: String    // Ethereum address of requester
) -> Result<VetKDPublicKeyReply, String>

When a DAO member wants to encrypt data:

Verifies the requester is a member by checking the DAO contract
Uses vetkd to generate a public key specific to this secret's derivation path
The member can use this public key to encrypt their data

Getting Decryption Key:

#[update]
async fn get_encrypted_key(
    secret_id: String,
    requester_address: String,
    encryption_public_key: Vec<u8>,  // Member's public key
    derivation_id: Vec<u8>    // Additional derivation data
) -> Result<VetKDEncryptedKeyReply, String>

When a DAO member wants to decrypt data:

Verifies again that the requester is a DAO member
Uses vetkd to create an encrypted key specific to this member
The member can then use this key to decrypt the data

The beauty of using vetkd is:

Key Security:

const MASTER_SK_HEX: &str = "718c36cd1dcf3501fd04bbe24c3bb9eedfd066d2420e794dd9342cf71d04176f";

lazy_static::lazy_static! {
    static ref MASTER_SK: Scalar = Scalar::deserialize(
        &hex::decode(MASTER_SK_HEX).expect("failed to hex-decode")
    ).expect("failed to deserialize Scalar");
}

The master key is managed by the Internet Computer
No single node has access to the complete key
Keys are derived uniquely for each secret and member

Access Control:

async fn is_dao_member(dao_address: &str, member_address: &str) -> Result<bool, String> {
    let members = read_dao_members(dao_address).await?;
    Ok(members.contains(&member_address.to_string()))
}

Only verified DAO members can get encryption/decryption keys
Membership is checked against the Ethereum contract
Changes in DAO membership automatically affect access

Efficiency:

thread_local! {
    static DAO_MEMBERS_CACHE: RefCell<HashMap<String, (Vec<String>, u64)>> = RefCell::new(HashMap::new());
}

Caches DAO member lists to reduce Ethereum RPC calls
Uses a time-based cache expiration
Maintains nonces for transactions

Example Usage Flow:

A DAO member wants to share a secret:

// 1. Set up the secret in the system
await set_secret("0xDAO_ADDRESS", "important_secret", derivation_path);

// 2. Get public key for encryption
let pub_key = await get_public_key("important_secret", "0xMEMBER_ADDRESS");

// 3. Encrypt data client-side
let encrypted_data = encrypt(data, pub_key);

// 4. Store encrypted_data (in a separate system)

Another DAO member wants to read the secret:

// 1. Get their specific decryption key
let enc_key = await get_encrypted_key(
    "important_secret",
    "0xOTHER_MEMBER",
    their_pub_key,
    derivation_id
);

// 2. Decrypt the key and then the data
let decryption_key = decrypt_key(enc_key);
let data = decrypt(encrypted_data, decryption_key);

Benefits of this approach:

Cryptographic security through IC's vetkd system
Automatic access control through DAO membership
No need for manual key distribution
Members can be added/removed just by updating the DAO
Everything is managed through smart contracts and the IC

Would you like me to explain any specific part of this system in more detail?

Looks cool. This is a hackathon submission, right? I suggest forking the repository and merging the changes with your fork.
Closing this PR.


⚠ ClamAV has degraded performance

In f681131, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 170 ms

Resolved: ClamAV performance has improved in 76d438a.


Add a build system that meets modern expectations.

Top candidates are probably autoconf+gmake or meson.

Please bear in mind that MinRX needs to be "drop in-able" into other peoples' code... I am willing to help if you want to go the autoconf + make route, as that's what gawk uses.

Closing this issue thanks to shenleban tongying's contribution of a meson build.


Update readme

What does this PR do?

Updates the tagline.
Updates the description and purpose of Bourbon.
Wraps lines at 80 characters.
Updates browser support.
Adds table of contents.

A couple comments on being more explanatory in a couple places, as well as a suggestion for using a table for the command line commands.
Looks great!

Thanks, @jasonramirez!


toggling of markers on map fails

toggle_marker_visibility needs the Marker elements to have a marker._icon. attribute, representing the html node. Seems to be missing. Maybe change in Obj/Interf?

Seems like I moved to the circleMarker class, without checking this. This class is way better suited for the job, due to options-property containing all necessary info. It can be passed to constructor, so toggling is done by
circleMarker.options.display = circleMarker.options.display === 'table-cell' ? 'none' : 'table-cell';


New OpenAPI handler docs

I love this! I just added one comment. Other than that, it looks good to me.


Github.io comments: Using Capabilities

Comments to https://microsoft.github.io/PowerBI-visuals/docs/concepts/capabilities/

How would you set default property values on something like Title which is a default property?  We'd like to set the default title text, font size, and color for example.


Can addHeader handle entries other than content-type?

I need CORS stuff. it seems output.addHeader("Access-Control-Allow-Origin", "*"); have no effect when I try to use fetch func of react? I took a look at the sources and if I am not wrong it just receive and sends the header stuff without touching it (_internal._headers ~= KeyValue(key.toLower, value);). But in my case somehow those don't have any effect.
output.addHeader("content-type", "application/json");
output.addHeader("Access-Control-Allow-Origin", "*");
output.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
output.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, content-type, Accept, Authorization");

output ~= jsonOut.toString;

from chrome debug console:
Access to fetch at 'http://localhost:8080/newuser' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

I’m not sure I understood: have you tried to see what headers Serverino responds with? Does Serverino send all the headers that you had added?
Serverino adds every header you send, even custom ones, like "X-my-custom-header".

Dear Andrea, I see. For now, I just use no-cors to quickly complete my little project. I will revisit this issue later and will inform you about it. Thank you.

Dear Andrea, my cors problem was resolved by adding "Content-Type": "multipart/form-data" to the fetch function's header. dunno why it is related to Cors barrier.  it's been a long time to cope with web programming.
This means there is not an issue related to serverino, since output.addHeader("Access-Control-Allow-Origin", "*") does the expected thing.

Hello Andrea, I want to ask some questions (I am not in a rush, take your time please). Should Serverino have a handle mechanism for preflight requests? Or is it better to leave this kind of responsibility to the user? However, this is a small tool, and I prefer to keep this position. Maybe it has already one that I failed to figure out. I didn't even know that the preflight request thing existed. I had problems with fetch for this reason. I had to add some code to the beginning of every endpoint func body. mixin(Preflight!());
template Preflight()
{
    const char[] Preflight = "
    if (request.method == typeof(request.method).Options) {
        // Respond with HTTP OK status for preflight requests
        output.status = 200;
        return;
    }";
}

My typical endpoint is like this. I wish I could access the Output parameter in UDAs to remove the auth check from the function body.
...
@endpoint
@route!(r => r.uri=="/loggedin/setuserpass")
void changePassword(Request request, Output output){
	setOutHeaders(output);
	mixin(Preflight!());

	JSONValue res;
	if(performBasicAuth(request, output)){
		immutable json = handleInJson(request.body.data);
		string newpassword = json["password"].str;

		auto response = responseWithNewToken();
		sessionUser.hashPassword(newpassword);
		updatePasswordDB(sessionUser); // sessionUser is just a global class obj. am I doing right? do we need some thing like g in flask : https://flask.palletsprojects.com/en/2.3.x/appcontext/
		res = JSONValue( ["result": "1", "token": response["token"].toString]);
	}else{
		res = JSONValue( ["result": "0", "err msg": "wrong user info"]);
	}
	output ~= res;
}
...
bool performBasicAuth(ref Request request, ref Output output) {
    string authHeader = request.header.read("authorization");

    if (authHeader.empty || !authHeader.startsWith("Basic ")) {
        output.status = 401;
        return false;
    }

    string base64Credentials = authHeader.split(" ")[1];
    auto credentials = Base64.decode(base64Credentials).split(":");

    string username = cast(string)credentials[0];
    string password = cast(string)credentials[1];

    if (verifyPassword(username, password)) {
        output.status = 200;
        return true;
    } else {
        output.status = 401;
        return false;
    }
}
...
void setOutHeaders(ref Output output){
	output.addHeader("Access-Control-Allow-Origin", "*");
	output.addHeader("Access-Control-Allow-Credentials", "true");
	output.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
	output.addHeader("Access-Control-Allow-Headers", "Authorization, Content-Type");
	output.addHeader("Content-Type", "application/json");
}

In the university department I work for, we have a windows server 2008 (damn old one right?). I want to setup things and run my serverino API on that computer. nginx is not an option on windows IMHO. What do you recommend for it?
Thanks in advance 👏

Thank you. I forgot priority feature of the library. probably I will refactor my code base accordingly.

Hi Andrea,
It is me, again 😃. I am writing a program like Serve of Martin Nowak but
using serverino. My code draft runs well and can successfully serve a react
source folder. I am going to publish it if I can resolve some issues. I
would make a pull request to Serverino repo if you like the idea. Here is
my problem. I believe that ServerinoConfig setup() runs multiple times (for
each worker?). I expect it to run at the exe startup once. For the first
run, args are passed, then the second one, and others run without args.
This situation exists even with Runtime.args(). this prevents me from
nicely handling program arguments like ".\servefolder path port". Am
I missing something?
On Fri, Feb 23, 2024 at 1:36 AM Andrea Fontana @.***>
wrote:

What about apache2? On main github page is shown a simple setup.
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1960446800,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6KYSUPRDHGL3X3ZJZTYU7B73AVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRQGQ2DMOBQGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Probably are you missing "@onWorkerInit"?

it is obvious that onServerInit is called multiple times, and only the
first one has args:
setup() called with args:
["D:\projects\d_projects\servefolder\servefolder.exe",
"D:\projects\deneyler-gui\build", "8080"]

[018836] [i] 2024-02-29 22:21 [daemon.d:0210] Daemon started.
[018836] [i] 2024-02-29 22:21 [daemon.d:0233] Listening on
http://<IP_ADDRESS>:8080/
setup() called with args:
["D:\projects\d_projects\servefolder\servefolder.exe"]
D [007736] [l] 2024-02-29 22:21 [worker.d:0084] Worker started.
setup() called with args:
["D:\projects\d_projects\servefolder\servefolder.exe"]
D [010736] [l] 2024-02-29 22:21 [worker.d:0084] Worker started.
setup() called with args:
["D:\projects\d_projects\servefolder\servefolder.exe"]
D [007508] [l] 2024-02-29 22:21 [worker.d:0084] Worker started.
setup() called with args:
["D:\projects\d_projects\servefolder\servefolder.exe"]
D [004772] [l] 2024-02-29 22:21 [worker.d:0084] Worker started.

On Thu, Feb 29, 2024 at 9:57 PM Ferhat Kurtulmuş @.***> wrote:

i am already using it. i think I have just figured that out. I will soon
share it with you.
On Thu, Feb 29, 2024 at 9:42 PM Andrea Fontana @.***>
wrote:

Probably are you missing @.***"?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1971735938,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6J6QBKQBS32GNQFVOTYV53CNAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZRG4ZTKOJTHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Yes it is called multiple times, but you should not put initialization code inside, you should use it only to return a config.
Init code should be put inside ondaemonstart (main process start) or onworkerstart (when a worker is started or restarted)
Probably the best way is to use runtime.args inside ondaemonstart (that runs before any worker)

If you need to pass something between main process (Daemon) and worker try to use envvar, it should work

Eg:
environment["foo"] = "bar";

Check this:
module app;

import serverino;
import std;

mixin ServerinoMain;

@onServerInit ServerinoConfig configure()
{
	return ServerinoConfig
		.create()
		.addListener("<IP_ADDRESS>", 8080)
		.setWorkers(4);
}

@onDaemonStart void start()
{
	environment["path"] = "/tmp";
	environment["data"] = `{"name": "John", "age": 30}`;
}

void dump(Request request, Output output)
{
	output.addHeader("content-type", "text/plain");
	output ~= "Path: " ~ environment["path"] ~ "\n";
	output ~= "Data: " ~ environment["data"] ~ "\n";
}

Hello Andrea,
Thanks for the tip. I restructured the code accordingly. Do you think it is
ready to put on the dub registry? Is there something that I missed and not
covered for a wide range of use cases? Do you want its ownership? If so, I
can make it a subproject in Serverino with PR.
https://github.com/aferust/servefolder
On Fri, Mar 1, 2024 at 1:27 AM Andrea Fontana @.***>
wrote:

Check this:
module app;
import serverino;import std;
mixin ServerinoMain;
@onServerInit ServerinoConfig configure()
{
return ServerinoConfig
.create()
.addListener("<IP_ADDRESS>", 8080)
.setWorkers(4);
}
@onDaemonStart void start()
{
environment["path"] = "/tmp";
environment["data"] = {"name": "John", "age": 30};
}
void dump(Request request, Output output)
{
output.addHeader("content-type", "text/plain");
output ~= "Path: " ~ environment["path"] ~ "\n";
output ~= "Data: " ~ environment["data"] ~ "\n";
}
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1972076980,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6LXPZDXLYTZIJBTLNTYV6VMTAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZSGA3TMOJYGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Nice!
Some features I would add:

Do not serve (and list?) hidden files by default (f.e. files starting with ".")
Do not serve (and list?) files serverino can't read (without read permission)
Do not serve (and follow?) symlinks (a folder can exit from your root!)
Why not using --port --serve-hidden-files and other options like this? (see std.getopt)
your-ip/index.html hides a index.html file in the root. Maybe you could serve files unsing  your-ip/?file=/index.html ?

Do not serve (and list?) hidden files by default (f.e. files starting
with ".")
this one is already covered. see
https://github.com/aferust/servefolder/blob/main/source/dirfileops.d#L27

Why not using --port --serve-hidden-files and other options like this?
(see std.getopt)
I was using std.getopt at first. then i hit the args issue and just used
manual handling for args.now it is resolved and i can easily reimplement it.

Do not serve (and list?) files serverino can't read (without read
permission)
Do not serve (and follow?) symlinks (a folder can exit from your root!)
i will cover these.

your-ip/index.html hides a index.html file in the root. Maybe you could
serve files unsing your-ip/?file=/index.html ?
i will consider that one too

On Fri, Mar 1, 2024 at 11:33 AM Andrea Fontana @.***>
wrote:

Nice!
Some features I would add:

Do not serve (and list?) hidden files by default (f.e. files
starting with ".")
Do not serve (and list?) files serverino can't read (without read
permission)
Do not serve (and follow?) symlinks (a folder can exit from your
root!)
Why not using --port --serve-hidden-files and other options like
this? (see std.getopt)
your-ip/index.html hides a index.html file in the root. Maybe you
could serve files unsing your-ip/?file=/index.html ?

—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1972743418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6OLTGQFBOUQF6ESA6LYWA4MHAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZSG42DGNBRHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

First one: you do not list these files, but I can still access them writing the right url, right?

ahh yes. i shoulda use folder.baseName.startsWith("."). Probably i will
need a blackList function to handle all similar cases in one united place
On Fri, Mar 1, 2024 at 11:49 AM Andrea Fontana @.***>
wrote:

First one: you do not list these files, but I can still access them
writing the right url, right?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1972766424,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6IPLZ5YL7ANHQSAFJLYWA6JJAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZSG43DMNBSGQ
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Or maybe split the whole requested path and check if there's a part starting with .
/this/request/.should/not/pass

Two points:

It doesn't work if an index doesn't exists? Usually they create an index page with a (clickable) list on link to internal files like https://ftp.debian.org/debian/tools/ (--disable-listing)
A better way to serve a file is using output.serveFile()  see: https://trikko.github.io/serverino/serverino/interfaces/Output.serveFile.html

I always find this vulnerable https://ftp.debian.org/debian/tools/, listing
a folder browser. Maybe better to use an option for it.
i am using output.serveFile() in my little project I mentioned before. Yes,
in the next release, we can serve those with serveFile. Can you help me
prepare a static immutable array containing extensions suitable to be
downloadable or to serve with serveFile? or just tell me the types. I can
cover your points in the next release.
On Fri, Mar 1, 2024 at 4:28 PM Andrea Fontana @.***>
wrote:

Two points:

It doesn't work if an index doesn't exists? Usually they create an
index page with a (clickable) list on link to internal files like
https://ftp.debian.org/debian/tools/ (--disable-listing)
A better way to serve a file is using output.serveFile() see:
https://trikko.github.io/serverino/serverino/interfaces/Output.serveFile.html

—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1973205178,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6PTXEPFG6UTQFMC4D3YWB67PAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZTGIYDKMJXHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

You can serve anything, also html, what's the problem? It should be even more efficient than output ~= readText().
output ~= something is useful for dynamic webpages, not for serving static pages

hey Andera, you were right. I implemented a little folder browser for
default index, allowing me to reveal many bugs. for instance, /path/folder/
and /path/folder/ must be handled differently. I am working on it. I will
push when it is complete.
Thanks
On Fri, Mar 1, 2024 at 5:40 PM Andrea Fontana @.***>
wrote:

You can serve anything, also html, what's the problem? It should be even
more efficient than output ~= readText().
output ~= something is useful for dynamic webpages, not for serving static
pages
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1973321728,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6M2C7G7JNSD7FETQEDYWCHPXAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZTGMZDCNZSHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

*: /folder/antherfolder/ and  /folder/antherfolder
On Sat, Mar 2, 2024 at 12:38 PM Ferhat Kurtulmuş @.***> wrote:

hey Andera, you were right. I implemented a little folder browser for
default index, allowing me to reveal many bugs. for instance, /path/folder/
and /path/folder/ must be handled differently. I am working on it. I will
push when it is complete.
Thanks
On Fri, Mar 1, 2024 at 5:40 PM Andrea Fontana @.***>
wrote:

You can serve anything, also html, what's the problem? It should be even
more efficient than output ~= readText().
output ~= something is useful for dynamic webpages, not for serving
static pages
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1973321728,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6M2C7G7JNSD7FETQEDYWCHPXAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZTGMZDCNZSHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

I don't get a thing: why do you create a full list of files on start?
Why don't you simply pass the base folder and check if requested file exist when required?

i thought parsing the entire folder once at the beginning of the server
init (ondaemonstart) was more efficient than doing one path checks for each
request.  But i am reevaluating this because I am learning how things work.
2 Mar 2024 Cmt 12:51 tarihinde Andrea Fontana @.***>
şunu yazdı:

I don't get a thing: why do you create a full list of files on start?
Why don't you simply pass the base folder and check if requested file
exist when required?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974749550,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6NYTJVH34LA7QM6O6LYWGOIJAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42DSNJVGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

imagine something crazy. Load everything to the  heap at the beginning all
at once.  you can after even delete the folder you serve. this requires a
huge amount of ram, but you serve like light speed, right?, no disk reads
for the resources you serve, just thinking
2 Mar 2024 Cmt 13:05 tarihinde Ferhat Kurtulmuş @.***> şunu
yazdı:

i thought parsing the entire folder once at the beginning of the server
init (ondaemonstart) was more efficient than doing one path checks for each
request.  But i am reevaluating this because I am learning how things work.
2 Mar 2024 Cmt 12:51 tarihinde Andrea Fontana @.***>
şunu yazdı:

I don't get a thing: why do you create a full list of files on start?
Why don't you simply pass the base folder and check if requested file
exist when required?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974749550,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6NYTJVH34LA7QM6O6LYWGOIJAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42DSNJVGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Maybe, but it takes a lot of time during startup and you have to restart
server if you change a file.
And os has also a disk cache.
And anyway connection speed is a bottleneck.
Il sab 2 mar 2024, 11:30 aferust @.***> ha scritto:

imagine something crazy. Load everything to the heap at the beginning all
at once. you can after even delete the folder you serve. this requires a
huge amount of ram, but you serve like light speed, right?, no disk reads
for the resources you serve, just thinking
2 Mar 2024 Cmt 13:05 tarihinde Ferhat Kurtulmuş @.***> şunu
yazdı:

i thought parsing the entire folder once at the beginning of the server
init (ondaemonstart) was more efficient than doing one path checks for
each
request. But i am reevaluating this because I am learning how things
work.
2 Mar 2024 Cmt 12:51 tarihinde Andrea Fontana @.***>
şunu yazdı:

I don't get a thing: why do you create a full list of files on start?
Why don't you simply pass the base folder and check if requested file
exist when required?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974749550,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ACLDF6NYTJVH34LA7QM6O6LYWGOIJAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42DSNJVGA>

.
You are receiving this because you modified the open/close
state.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974757976,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAE575L2WWAEDXERZERHESTYWGS3JAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42TOOJXGY
.
You are receiving this because you commented.Message ID:
@.***>

hello Andrea,
I restructured the code base. These changes make me feel more comfortable
now. it now includes a simple directory browser (displays if no index
file). I tried output.serveFile but it immediately fires a download on the
browser. We should only handle predefined extensions with serveFile.
On Sat, Mar 2, 2024 at 1:34 PM Andrea Fontana @.***>
wrote:

Maybe, but it takes a lot of time during startup and you have to restart
server if you change a file.
And os has also a disk cache.
And anyway connection speed is a bottleneck.
Il sab 2 mar 2024, 11:30 aferust @.***> ha scritto:

imagine something crazy. Load everything to the heap at the beginning
all
at once. you can after even delete the folder you serve. this requires a
huge amount of ram, but you serve like light speed, right?, no disk
reads
for the resources you serve, just thinking
2 Mar 2024 Cmt 13:05 tarihinde Ferhat Kurtulmuş @.***> şunu
yazdı:

i thought parsing the entire folder once at the beginning of the
server
init (ondaemonstart) was more efficient than doing one path checks for
each
request. But i am reevaluating this because I am learning how things
work.
2 Mar 2024 Cmt 12:51 tarihinde Andrea Fontana @.***>
şunu yazdı:

I don't get a thing: why do you create a full list of files on start?
Why don't you simply pass the base folder and check if requested file
exist when required?
—
Reply to this email directly, view it on GitHub
<
https://github.com/trikko/serverino/issues/14#issuecomment-1974749550>,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/ACLDF6NYTJVH34LA7QM6O6LYWGOIJAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42DSNJVGA>

.
You are receiving this because you modified the open/close
state.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974757976,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AAE575L2WWAEDXERZERHESTYWGS3JAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42TOOJXGY>

.
You are receiving this because you commented.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1974758850,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6OPC75XTJQENZ2MHNLYWGTJ3AVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUG42TQOBVGA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Are you sure it fires a download? It should not. Are you adding some extra headers? Do you have an example?

it fires a download if there is no content type attached, so I will
use serveFile, ok. See, I added something like .htpasswd of Apache.
On Sun, Mar 3, 2024 at 9:30 PM Andrea Fontana @.***>
wrote:

Are you sure it fires a download? It should not. Are you adding some extra
headers? Do you have an example?
—
Reply to this email directly, view it on GitHub
https://github.com/trikko/serverino/issues/14#issuecomment-1975254058,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLDF6PWKTBGTMEVXN7FZDTYWNT4XAVCNFSM6AAAAABDPPAGYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVGI2TIMBVHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


router stuff

if this isn't a draft anymore, please remove the title

next step is to make the the url replace kv and path in state

will be a seperate PR tho


Add Feed-The-Beast (FTB) server modpack support

The popular mod site https://www.feed-the-beast.com provides server
modpacks to go with their client modpacks. These server modpacks
include a custom start script that must be used to launch the server.

This looks really cool! Since I haven't used FTB before I'm going to test it out as an ignorant user :)

Thank you so much. A Hub build is on its way...

Built and pushed at image ID 04e213c6a1cc


[material] Simplify building responsive layouts based on window size classes.

Use case
When building modern applications, making them responsive is essential. It would be great if there would be an easy way to build different layouts based on the window size class.
This could also be a foundation for issues like #142310.
Proposal
In material, there should be an enum WindowSizeClass that represents the different window size classes. Additionally, there should be a StatelessWidget called ResponsiveBuilder, that uses its ResponsiveWidgetBuilder to build the child based on the current WindowSizeClass.
Since "window size classes" are a part of Material 3, this should not be done in a new package.

I would like to suggest that these is implemented in the MediaQueryData to allow MediaQuery.heightSizeClassOf() and  MediaQuery.widthSizeClassOf().
I've seen that your PR https://github.com/flutter/flutter/pull/142348 was closed.
Instead of the hardcoded values, i would go with the official documentation https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes?hl=en that only states three classes.
This would also enable Flutter developers to create a user experience that user are familiar with.
I think that your Builder Function needs more context as people might misunderstand its behavior.
If it act like the OrientationBuilder, which gives you the orientation of the currently available space for the current widget, it would mostly be useless as the only widgets that require this information are toplevel Widgets like screens/pages. (Most widgets would be < 600p big and the builder would never be called)
If it just builds the current widgets with the overall window size class, it might provide a widget with information that might lead to misbehavior and hard to debug layouts.
Consider the following situation:
Instead of developing a widget that just relies on its current space, it now changes its layout based on the overall size while its own space is more limited than you would expect in the situation of writing.

@YukiAttano I disagree this should be part of MediaQuery, as it's platform-specific.
Material has its own size classes, while Cupertino/iOS has its own, with different breakpoints, classifications etc.
I suggest this effort be split into platform-specific issues.

@YukiAttano I disagree this should be part of MediaQuery, as it's platform-specific.
Material has its own size classes, while Cupertino/iOS has its own, with different breakpoints, classifications etc.
I suggest this effort be split into platform-specific issues.

That's a good point. But i would say it is less platform specific and more 'design' specific if Material and Cupertino have different definitions and not Android/iOS/etc.
In that case, i would like to see it in the Flutter library as it is somehow defined in the official docs.
But i do also understand if it is never implemented as this 'enforces' constraints not everyone want to follow.
I will create a package in the next week that allows such behavior. Could you send me the link to the Apple docs for their guidelines?
(I normally ignore the Cupertino design as i don't like it/don't like Apple's Marketing/don't like their Docs and the endless links to other subpages)

Fair enough, I was trying to find a better word to define them, perhaps "design implementations/libraries"?
Here's the link to the iOS docs, I realized I pasted in the wrong one in the comment: https://developer.apple.com/design/human-interface-guidelines/layout#Device-size-classes
I actually already wrote all of the necessary code for the Cupertino side of things as I mainly work with iOS, I'd be very happy to share!

Fair enough, I was trying to find a better word to define them, perhaps "design implementations/libraries"?
Here's the link to the iOS docs, I realized I pasted in the wrong one in the comment: https://developer.apple.com/design/human-interface-guidelines/layout#Device-size-classes
I actually already wrote all of the necessary code for the Cupertino side of things as I mainly work with iOS, I'd be very happy to share!

I have the code part of Material ready to go, sounds like we are a good match 😀.
But i want to redesign it to make it non-fixed on the guidelines for everyone.
Seeing the apple docs lets me remember why i ignored that part.
I will be back from vacation in a few days and send you a link to the then published package. If it meets your expectations i will be happy to have you on board.

Wonderful, keep me posted! 🤗
I do have a rudimentary solution for Material as well, but I'm curious to see what you came up with

@kerberjg
https://pub.dev/packages/responsive_ux
I have sent you an invitation and apologies to all the people who get spammed by our chat.
To have an easier communication, i will reach out to you with my private mail (just so you know in case it ends up in your spam)

I am adding this code and assigning copyright to Google,
`// Directly in the Material Design 3 spec we need
/// WindowSize as measured by width and margin and
/// middle spacing. Indirectly, we also need the indirectly
/// implied textDimens as evidenced by the discussion of
/// information density per small and large screens.
///
/// The SizedContext extension pairs with this enum, see
/// [SizedContext].
///
/// Material Design Spec docs start at Window
/// Size Classes see
/// https://m3.material.io/foundations/layout/applying-layout/window-size-classes
///
/// @author Fredrick Allan Grott
enum WindowSize {
compact(0, 599, 16, 0, 4),
medium(600,839 , 24, 24, 8),
expanded(840 , 1199 , 24, 24,16 ),
large(1200 ,1599 ,24 ,24, 32  ),
extraLarge(1600 , double.infinity , 24, 24, 64);
const WindowSize(this.beginWidthRange, this.endWidthRange, this.margin, this.middleSpacing, this.dimens);
final double beginWidthRange;
final double endWidthRange;
final double margin;
final double middleSpacing;
// for padding insets, its
// obliquely mentioned when talking about
// alignment needing to change for large screen
// content items in large screens.
final double dimens;
}
extensions AppContext on BuildContext {
MediaQueryData get mq => MediaQuery.of(this);
/// Returns an appWindowSize that contains the beginWidthRange, endWidthRange, margin,
/// middleSpacing, and dimens
WindowSize get appWindowSize {
if (mq.size.width >= WindowSize.compact.endWidthRange) {
return WindowSize.compact;
} else if (mq.size.width >= WindowSize.medium.endWidthRange) {
return WindowSize.medium;
} else if (mq.size.width >= WindowSize.expanded.endWidthRange) {
return WindowSize.expanded;
} else if (mq.size.width >= WindowSize.large.endWidthRange) {
return WindowSize.large;
} else {
return WindowSize.extraLarge;
}
}
}
`
Note handled both the direct width ranges, margins, and spacing and added dimens for the padding spacing via inserts for big screens.
If Google requires my further sig of copyright let me know via this issue an my comment
I added to speed things up as Apple has announced iphone foldable for 2026 and we need this
complete so that the issues with flutter adaptive scaffold can be further addressed.
All of its accessible via the BuildContext which is a better solution than some other ones...
I did borrow the idea from GSkinner's own SizedContext package...

That's a nice idea, i don't know if you posted everything or just a short example but don't forget the height WindowSize.
I am not sure where i've read that, but someone said that Flutter don't want a static implementation of the WindowSizes (but they defined some in Material specs...)
Feel free to check my linked package, maybe it is of help for you.

FYI: https://github.com/flutter/packages/tree/main/packages/flutter_adaptive_scaffold implements most of this. Maybe it's an idea to team up to shape the API and later on get it merged into material?

If needed, I'd happily assist from September.

FYI: https://github.com/flutter/packages/tree/main/packages/flutter_adaptive_scaffold implements most of this. Maybe it's an idea to team up to shape the API and later on get it merged into material?
I'm working with @gspencergoog on new proposals for the API.

Thats a great idea. I checked the repo and think the implementation got a lot more hardcoded values than necessary.
Especially this array seem to me that it breaks the pure purpose of the whole idea.
If you guys are up to chat, is there is a better place to share our thoughts or shall we stay in this Issue?

This is the draft doc i'm working in: https://docs.google.com/document/d/1DMFfGrHv_V1Je6_wrfyu0iY3ngJgn317OscfNbuRMRA/pub
It would be great to get some help and feedback shaping the api for that.
I'm not sure the array is a problem in the current structure. In compose they just support 3 panes and depending on some checks you get different navigation or more panes. Flutter uses a more complex SlotLayout but that also means you got to support a lot more customisations.
I'm at Flutter Discord as Martijn00 with @gspencergoog if you want to discuss things.

@fischerscode do you have time to help out improving adaptive_scaffold to meet the other requirements?
It would be great to split up some of the work and getting towards a stable base that could later on be merged into flutter itself.


Using protected environment in container environment

I am trying to figure out how to use environment from protected in a container environment.
From README.md, I think it should be done like this:
    "cache" : {
        "image" : "memcached",
        "ports" : ["11211:11211"],
        "environment": [ "SECRET_ENV=${SECRET_ENV}" ]
    }

Looking at azure-docker-extension/integration-test/extensionconfig/public.json, makes me think this is the right approach:
    "cache" : {
        "image" : "memcached",
        "ports" : ["11211:11211"],
        "environment": [ "SECRET_ENV" ]
    }

How can the protected environment be used in the container environment?
Perhaps the readme can be updated to make this more clear?

@tmds the integration test actually gives a good idea, that's how public.json should be like. Then you need to specify the value of SECRET_ENV in protected.json: https://github.com/Azure/azure-docker-extension/blob/master/integration-test/extensionconfig/protected.json in ARM templates this JSON file goes under "protectedSettings" key. It is documented under 1.2. Protected Configuration Keys in the README:
https://github.com/Azure/azure-docker-extension#12-protected-configuration-keys

The documentation says:

compose: (optional, JSON object) the compose.yml file to be used, converted to JSON. If you are considering to embed secrets as environment variables in this section, please see the "environment" key described below.

environment: (optional, JSON object) Key value pairs to store environment variables to be passed to docker-compose securely. By using this, you can avoid embedding secrets in the unencrypted "compose" section.

The compose file reference says:

You can use environment variables in configuration values with a Bash-like ${VARIABLE} syntax

When I read this, my assumption is [ "SECRET_ENV=${SECRET_ENV}" ] will set the variable in the compose section, passed from protected as an environment variable to compose.
Is it possible to set variables directly in the compose container environment, without using protected environment variables?

@tmds ah maybe the SOME_NAME=${SOME_OTHER_NAME} syntax might be a way to rename environment keys. Like maybe in protected session you specify PASSWORD and in compose.yml, use it as MYSQL_PASSWORD and so forth.
If you don't want to rename the keys, in compose.yml you can just say environment: [ "SECRET_ENV"]  and it will use the SECRET_ENV var directly (you don't need the =${...}).
Basically what we do is, we read the environment variables and their values specified in protected sessions, pass that to docker-compose process. That's pretty much it. Depending on the .yml you specify, they'll get used or discarded.
So if you have a public configuration with "environment" key like:

and protected configuration with contents like:

your container will indeed get SECRET_ENV value. Based on your needs, you can rename these fields.

Indeed, both syntaxes should work. From the compose file reference:

Environment variables with only a key are resolved to their values on the machine Compose is running on, which can be helpful for secret or host-specific values.

@tmds does that resolve the issue for you?

I will try some of these things out tomorrow and if everything works fine (which I expect to be the case), I'll close the issue.

@ahmetalpbalkan Both syntaxes work fine. Thanks for your help.

@tmds great to hear, please let us know if you run into any more questions.


[Custom TX2]: Second eth port not working if jetson-flash used for writing the image

Configuration files in /mnt/boot/system-connections/ are present when using jetson-flash
bootloader-dtb and kernel-dtb partitions are written

Tegra flashing tools seem to be doing other changes however and eth port2 reportedly does not come up.

Fixed by https://github.com/balena-os/jetson-flash/pull/60


Project > "Location" field value is not updated if the user clear texts from the "PRIMARY LOCATION" field

Roles All
Describe the bug
Project > Location field value is not updated if the user clear texts from the PRIMARY LOCATION field
Steps to Reproduce

Login as Admin user
Create a project and Open created project
Add Location and FieldRegion
Click on the  Location and FieldRegion button and clear the Location and FieldRegion textbox
Click on the Save button

Expected Result
Location values should be updated  as per Start-End Dates when the user clear texts from the PRIMARY LOCATION field
Actual Result
Location field value is not updated if the user clear texts from the PRIMARY LOCATION field
Note: same issue is for the FieldRegion field
See video -
https://user-images.githubusercontent.com/5212585/135454845-f5f06c07-b2ec-4570-ba18-f72305cf4556.mp4
FYI@ParkeBrown @michaelmarshall
cord-field# 684cfb8
CordAPIV3# 32bf73a

This might be an API bug...


NPM package management procedure

Currently , this is the process we are following ,

Created an account in https://www.npmjs.com/
In the Application pattern repository , we have two folders inside the https://github.com/openBackhaul/ApplicationPattern/tree/develop/server
•	applicationPattern
•	basicServices
Both this packages will have a package.json file , and following two attributes are important to create a new npm package and publish new version of the package ,
"name": "onf-core-model-ap",
"version": "1.0.1",
To publish a npm package , go to the location where we have this package.json and issue the command
npm login
npm publish
If we logged in in another npm user id , then it’s not possible to publish a new version of the same package  if there is no rights assigned for the other user id

To transfer the package ownership to another user , we have a procedure that needs to be done. https://docs.npmjs.com/transferring-a-package-from-a-user-account-to-another-user-account.

Followed the steps mentioned in the above comment and made @IswaryaaS as a maintainer for the npm packages onf-core-model-ap-bs , onf-core-model-ap . Also , she published the version 2.0.0-alpha.1 (Reference : https://github.com/openBackhaul/ApplicationPattern/issues/513) . Hence closing this issue. Thanks.


How to update an entire project.

If I want to update the entire project, do I need to compile each routed page into a separate EVC file?

No, you can use HotSwap and runtime overrides for this.


290 tests v2

Usage related changes
Resolves #190
Development related changes

Tests can be run in a docker container
Individual tests can be run with npm run test-general-tests -- account-test

Checklist:

[x] Formatted the code
[x] No linter errors + tried to avoid introducing linter warnings
[x] Performed a self-review of the code
[x] Rebased to the last commit of the target branch (or merged it into my branch)
[x] Documented the changes
[ ] Updated the test directory (with a test case consisting of network.json, hardhat.config.ts, check.ts)
[x] Linked issues which this PR resolves
[ ] Created a PR to the plugin branch of starknet-hardhat-example:

< EXAMPLE_REPO_PR_URL >
[ ] Modified test.sh to use my example repo branch
[ ] Restored test.sh to to use the original branch (after the example repo PR has been merged)

[ ] All tests are passing (for external contributors who don't have access to the CI/CD pipeline)

@FabijanC Here's the new PR for #296.

Hi Fabijan,
I think there might be another way to go about this. Without having to make any changes to the code itself. We should be able to use a lot of stuff from here.
I will update you in the first week in April, is that cool?

Hi Fabijan, I think there might be another way to go about this. Without having to make any changes to the code itself. We should be able to use a lot of stuff from here. I will update you in the first week in April, is that cool?

Hi Shramee, thanks for replying. That sounds good!

Closed in favor of #343


Why it is so slow compared to any existing Java implementations?

We compared this library with apache/hbase which is a Java client focused on GET performance. However, we found that even for exactly the same query when rps reaches 3k, the latency of the single "GET" is like seven times longer than apache/hbase.

It's likely that with default config of gohbase (optimized for throughput, not latency) you are hitting flush interval every time. Could you try setting https://godoc.org/github.com/tsuna/gohbase#FlushInterval to 0.

It works, thanks!


Dealing with Spawned Pedestrians

I am kind of new to CARLA and have some questions regarding how I can have more control over spawned pedestrians. The main goal of my research is to use RL to enable the ego vehicle to pass the unsignaled intersections in the presence of upcoming cars and pedestrians.  To do this, I need to put the pedestrians at specific locations (e.g. intersections). However, I can't do that by using the spawn_npc.py. Is there anyone who's done this before and can help me with that?
Another question that I have is related to the source CPP codes for CARLA. Currently, I am working with CARLA 0.9.8 and I have no clue where the CPP codes are in this version. Are there in the folder that we download on the website or are there somewhere else? I am asking this since I think I need to edit some predefined functions for example spawn.actor, in my own way. Any information that could help me is more than welcome. Thanks!

Hi, @KasraMokhtari2112 !

Regarding pedestrians: You can spawn pedestrians anywhere you like, and apply controllers to move them in a certian direction, and with a certain speed.
Walkers are actors, and they can be spawned as any other. The process to do so is explained here. https://carla.readthedocs.io/en/latest/core_actors/#actor-life-cycle
The spawn location  can be changed to whichever location in the world.
Applying the controller simply requires the usage of carla.WalkerControl and optionall, carla.WalkerBoneControl (to animate it). Both are detailed in the Python API reference.
https://carla.readthedocs.io/en/latest/python_api/#carlawalker
https://carla.readthedocs.io/en/latest/python_api/#carlawalkercontrol
Optionally: https://carla.readthedocs.io/en/latest/python_api/#carlawalkerbonecontrol

Regarding the .cpp. I suppose that you are working with a CARLA package. The code is not available, nor can it be modified there. In order to do that, you should work with a CARLA build from source. The Home page of the docs contains links for both the Linux and the Windows build.
https://carla.readthedocs.io/en/latest/

Thanks a lot. That was really helpful. I have another question tho. I want to define a path for each pedestrian and make them follow that path (these paths are exported from a real-world dataset and I will try to scale them based on Carla maps). Do you think I can do this by continually updating the target location for them? If yes, I am not sure how I can update them in terms of time. Does the controller give me a time when the pedestrian will arrive at the target location?

Hi, @KasraMokhtari2112 !
I would suggest you store the path as a list of key locations, and use carla.WalkerControl to move the walkers towards them. You can compute the direction using the walker's location and the next point.
Regarding the time, the speed parameter of the controller is in m/s if I remember correctly. That may help you make a guess on the travelling time depending on the distance. However, you could simply compare the walker's position to the target, and once it is smaller than x, update the target to the next in line.

Hi, @KasraMokhtari2112 !
I would suggest you store the path as a list of key locations, and use carla.WalkerControl to move the walkers towards them. You can compute the direction using the walker's location and the next point.
Regarding the time, the speed parameter of the controller is in m/s if I remember correctly. That may help you make a guess on the travelling time depending on the distance. However, you could simply compare the walker's position to the target, and once it is smaller than x, update the target to the next in line.

Thanks for your time and response. I tried to implement this as you said. I assigned the desired target location and once the pedestrian arrives there, he will stop! However, the only problem is that now the pedestrian movement is not smooth!!
In the "PedestrianTarget" function which is taking care of guiding the pedestrian to the target location, I have a time.sleep(2). However, every 2 seconds it seems like the pedestrian direction is gonna change randomly for a very very short time, and then it is going in the right direction. Do you have any idea why? I feel like after 2 seconds first a random target point is selected for the pedestrian and then I change this value. Thank you so much!

May I ask for the specific code you are using? So I can trace what is happening.
(And ideally, if you have a gif of the weird behaviour it could be of great help).

May I ask for the specific code you are using? So I can trace what is happening.
(And ideally, if you have a gif of the weird behaviour it could be of great help).

Sure. Here is my code. As of now, I only spawned one pedestrian.
Spawn_npc_Kasra.txt
Thanks for your help!

May I ask for the specific code you are using? So I can trace what is happening.
(And ideally, if you have a gif of the weird behavior it could be of great help).

I fixed that problem in my code. It was doing this movement since, in the while loop, I was sending the target location in every loop to the pedestrian. So, the target was reset every time (although it was the same target ) the pedestrian body was constantly turning. I am still not sure why the pedestrian is doing this even if the target location hasn't changed!
I figure out sth else with pedestrian navigation. If I set a small threshold for that pedestrian to hit the target, it never gets there and after the first try getting close to that target it follows another random target. I have defined a reset-target function in my code but that makes the path of pedestrian so unrealistic. I think it has to do with the AI controller's accuracy for pedestrian navigation. Do you have any idea how I can fix this?
Attached is my code. I really appreciate it if you can take a look at it. Thanks a lot!
Pedestrian_Navigation_2_Kasra.txt

@bernatx perhaps you could provide some hints since you are the owner of this code?

Hi KasraMokhtari2112,
The pedestrians system is targeted to have random people to walk to random locations just to populate the map. But you can also move the pedestrian to the locations you want, as Sergi described. But the problem is that now when a pedestrian reach his target position, then another random is assigned, and I think that is what is happening to you. We need to fix that, so you can control in a better way the pedestrian navigation.
We will do the changes accordingly. In the meantime, you can modify the file carla\LibCarla\source\carla\nav\WalkerManager.cpp in line 195 we reassign a random route when the pedestrian has reached his target position. Maybe you want to disable that and just the pedestrian keep stopped at that position.
I hope that works for you.


Switch Binder and Colab links in notebooks to markdown in alert box

The raw HTML table was not converting to reStructuredText through nbsphinx (which, I think, uses jupyter nbconvert --to=rst, which uses pandoc). The output lost the links + images (see more details about pandoc directly at the end of this PR).
This PR updates the links to be normal markdown links + images, which ensures they do get converted correctly.
See: #1293
Reproducing pandoc's behaviour
echo 'Y ' \
  | pandoc --from=markdown --to=rst

The output is just Y by itself, the link and image both completely disappear.
From their docs

The raw HTML is passed through unchanged in HTML, S5, Slidy, Slideous, DZSlides, EPUB, Markdown, CommonMark, Emacs Org mode, and Textile output, and suppressed in other formats.

That doesn't include reStructuredText.
Strangely enough (and in contradiction), it does seem to pass through the various
 tags. The converted rST for the original table is contains the text and the table-related tags, but nothing else:
.. raw:: html

.. raw:: html

.. raw:: html

Run the master version of this notebook:

.. raw:: html

.. raw:: html

.. raw:: html

.. raw:: html

.. raw:: html

.. raw:: html

.. raw:: html

When I added the original Binder and Colab links, I couldn't get markdown tables to render inside Jupyter notebooks, and in this PR they're not rendering either? eg https://github.com/stellargraph/stellargraph/blob/d1bcf9153e7b235b13bd06064afbffb6e56ed2ab/demos/basics/loading-networkx.ipynb

Yeah, it's not working on Github or nbviewer, despite looking reasonable in Jupyter lab:

and also on Read the Docs: https://stellargraph--1398.org.readthedocs.build/en/1398/demos/basics/loading-networkx.html
I'm thinking I may switch this to something clunky like a block quote:

Run the master version of this notebook:

We can potentially post-process the block quote to look better on Read the Docs, with a technique along the lines of #1401.

This causes problems with some of the notebooks that have a block quote as the first element of the markdown cell after the image:

demos/basics/loading-networkx.ipynb
demos/basics/loading-pandas.ipynb
demos/basics/loading-saving-neo4j.ipynb
demos/node-classification/gcn/gcn-cora-node-classification-example.ipynb

The text of the quote disappears on Read the Docs due to https://github.com/spatialaudio/nbsphinx/issues/450 and/or https://github.com/jupyter/nbconvert/issues/1245.
I think we can work around this by moving that quote to be immediately after the title, e.g.: for https://github.com/stellargraph/stellargraph/blob/aae2ed75612a4504b74f856c65106c45af07d0da/demos/node-classification/gcn/gcn-cora-node-classification-example.ipynb

Graph Convolutional Network (GCN) on the CORA citation dataset

This demo explains how to do node classification using the StellarGraph library. See all other demos.

Run the master version of this notebook:

I'm going to do this as a separate PR.


PR comments

Hm what should we actually store in Firebase? Since all comments are already fetched from GitHub

I think this is about storing the tree like structure for the comments.


feat(package): optional @types/express peer dependency

Description
fixes #703
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Coverage remained the same at 98.86% when pulling 0c8049db4875414d1c5258e3e9cd77b3d34cab7c on peerDependenciesMeta into d7623983e18f0daa724a3fcc0b5d4d1812e4c3c1 on master.


Request to add support for aws-iot-securetunneling-localproxy project

Recently, support for aws-iot-securetunneling-localproxy was removed from the Yocto project due to a problem with boost 1.69 (#126), this is a notification that we've updated the localproxy project to the latest boost stable version (1.76), so you should be able to add the recipes for the SecureTunneling support again.

@kareali Thank you for the notification - will work on getting this added back today!

@kareali is it possible you can do a tagged release so I can reference the tag instead of the commit hash?


Hide Youtube Shorts, SUBSCRIPTIONS, and MORE FROM YOUTUBE

Pretty much keep Youtube to a clean search bar mostly. If possible would be great, otherwise still a great extension for a great price.

Thanks for the idea, @sincerelyzhen. This has now been implemented. Actually, those little guide items were kind of hard to select via css, so this solution may not work reliably for future iterations of YouTube. Hence, I may end up removing this later on. For now, though, it seems to work well enough.
https://github.com/Appccessibility-Shox/Focus-for-YouTube/blob/ac38009f6e87b5ea4e9267d623f1cbf0475a66e9/Focus for YouTube/ViewController.swift#L38-L39

Thank you for the response. Those guide items aren't too much of a bother
so if it's more stable for future versions of Youtube then I think it could
be better to leave it. The Youtube 'Shorts' like 'Explore' though I could
do without.
*I opened the extension but didn't see the option to remove, nor an update
to extension in App Store. Appreciate the time and dedication, thank you
again.
On Fri, Apr 29, 2022 at 3:33 AM George Botros @.***>
wrote:

Closed #26
https://github.com/Appccessibility-Shox/Focus-for-YouTube/issues/26.
—
Reply to this email directly, view it on GitHub
https://github.com/Appccessibility-Shox/Focus-for-YouTube/issues/26#event-6520801417,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWHKEY67DBXKWCUBAHU27GTVHOGERANCNFSM5UPKUUVQ
.
You are receiving this because you were mentioned.Message ID:
<Appccessibility-Shox/Focus-for-YouTube/issue/26/issue_event/6520801417@
github.com>


Org locale inheritance + test

https://www.pivotaltracker.com/story/show/141258425

changed org's locales db relationship to _locales
created organization.locales property, which returns the union of the org's _locales and its parent's locales (if a parent exists).
added test for this inheritance to test_organization

@pbugni this should be ready to merge, whenever you have a chance to review


Duplicate MathJax nodes rendered

Hi, I have a react program set up with a MathJax node hooked up to some sliders, like this:

When I move these sliders, multiple MathJax nodes appear:

I will also note that using this react-mathjax library solves this problem: https://github.com/wko27/react-mathjax (registered as react-mathjax2 in npm).

I'm having the same issue too. If this component is rendering based on component state, after a few state updates it starts to show the resulting formula twice.

Same problem here

I've got the same problem. Where you guys able to fix it?

I was having the same issue:

It seems the MathJax.Node renders the formula in two spans (one with the class MathJax_Preview and the other with the classes mjx-chtml MathJax_CHTML):

Hiding the MathJax_Preview span with the following CSS solved my issue:
span.MathJax_Preview {
  display: none;
}

MathJaxCom 这个元素上绑定一个 key，也可以解决这个问题


opengist: 1.6.1 -> 1.7.5

Things done
nixfmt
add self as maintainer

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux

cross compiled and ran with emulation (nixos binfmt)
result -> /nix/store/zr9f6l5zaihnvndmnyjvspsf3agzqs7n-opengist-aarch64-unknown-linux-gnu-1.7.5

[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage1 package updated:
opengist (1.6.1 → 1.7.5)
1 package built:
opengist

[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 349718 run on x86_64-linux 1

1 package built:

opengist

@zakame please remember to approve if you approve the pr

@Artturin thanks - my previous comment wasn't an endorsement or approval, only that I was able to build this without issue.  Was wanting to test this more, but nevermind.

It's my bad, I was hasty. I'll try to be more careful.