FaceIdentification make error

‘imread’ is not a member of ‘cv’
‘resize’ is not a member of ‘cv’
System: Ubuntu 16.04, Opencv 3.3.1
All 4 errors are on SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp file

I added these lines at the end of the CMakeLists.txt, and it worked on Ubuntu 17.10, Opencv 3.1.0
find_package(OpenCV)
if (NOT OpenCV_FOUND)
  message(WARNING "OpenCV not found. Test will not be built.")
else()
  include_directories(${OpenCV_INCLUDE_DIRS})
  link_libraries(${OpenCv_LIBS})
endif()

I am experiencing the same problem as @erikaemma
@beantowel
I did what you did but it doesn't work :
cmake .. && make
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
STATUS "other platform: Linux"
./test_face_recognizer.cpp./test_face_verification.cpp
-- Found OpenCV: /usr/local (found version "4.0.0")
CMake Warning (dev) at src/test/CMakeLists.txt:11 (add_executable):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "./test_face_recognizer.bin" is reserved or not valid for
  certain CMake features, such as generator expressions, and may result in
  undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at src/test/CMakeLists.txt:11 (add_executable):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  The target name "./test_face_verification.bin" is reserved or not valid for
  certain CMake features, such as generator expressions, and may result in
  undefined behavior.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/build
Scanning dependencies of target viplnet
[  4%] Building CXX object CMakeFiles/viplnet.dir/src/bias_adder_net.cpp.o
[  9%] Building CXX object CMakeFiles/viplnet.dir/src/blob.cpp.o
[ 14%] Building CXX object CMakeFiles/viplnet.dir/src/bn_net.cpp.o
[ 19%] Building CXX object CMakeFiles/viplnet.dir/src/common_net.cpp.o
[ 23%] Building CXX object CMakeFiles/viplnet.dir/src/conv_net.cpp.o
[ 28%] Building CXX object CMakeFiles/viplnet.dir/src/eltwise_net.cpp.o
[ 33%] Building CXX object CMakeFiles/viplnet.dir/src/inner_product_net.cpp.o
[ 38%] Building CXX object CMakeFiles/viplnet.dir/src/log.cpp.o
[ 42%] Building CXX object CMakeFiles/viplnet.dir/src/math_functions.cpp.o
[ 47%] Building CXX object CMakeFiles/viplnet.dir/src/max_pooling_net.cpp.o
[ 52%] Building CXX object CMakeFiles/viplnet.dir/src/net.cpp.o
[ 57%] Building CXX object CMakeFiles/viplnet.dir/src/pad_net.cpp.o
[ 61%] Building CXX object CMakeFiles/viplnet.dir/src/spatial_transform_net.cpp.o
[ 66%] Building CXX object CMakeFiles/viplnet.dir/src/tform_maker_net.cpp.o
[ 71%] Building CXX object CMakeFiles/viplnet.dir/tools/aligner.cpp.o
[ 76%] Building CXX object CMakeFiles/viplnet.dir/tools/face_identification.cpp.o
[ 80%] Linking CXX shared library libviplnet.so
[ 80%] Built target viplnet
Scanning dependencies of target test_face_recognizer.bin
[ 85%] Building CXX object src/test/CMakeFiles/./test_face_recognizer.bin.dir/test_face_recognizer.cpp.o
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp: In function ‘void FaceRecognizerTest_CropFace_Tester()’:
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:109:27: error: ‘imread’ is not a member of ‘cv’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:109:27: note: suggested alternative: ‘read’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
                           read
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp: In function ‘void FaceRecognizerTest_ExtractFeature_Tester()’:
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:175:27: error: ‘imread’ is not a member of ‘cv’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:175:27: note: suggested alternative: ‘read’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
                           read
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:177:9: error: ‘resize’ is not a member of ‘cv’
     cv::resize(src_img, src_img, cv::Size(face_recognizer.crop_height(),
         ^~~~~~
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:177:9: note: suggested alternative: ‘reduce’
     cv::resize(src_img, src_img, cv::Size(face_recognizer.crop_height(),
         ^~~~~~
         reduce
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp: In function ‘void FaceRecognizerTest_ExtractFeatureWithCrop_Tester()’:
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:244:27: error: ‘imread’ is not a member of ‘cv’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
/home/joseph/Documents/FACE_RECOGNITION/SeetaFaceEngine/FaceIdentification/src/test/test_face_recognizer.cpp:244:27: note: suggested alternative: ‘read’
     cv::Mat src_img = cv::imread(test_dir + img_name, 1);
                           ^~~~~~
                           read
src/test/CMakeFiles/./test_face_recognizer.bin.dir/build.make:62: recipe for target 'src/test/CMakeFiles/./test_face_recognizer.bin.dir/test_face_recognizer.cpp.o' failed
make[2]: *** [src/test/CMakeFiles/./test_face_recognizer.bin.dir/test_face_recognizer.cpp.o] Error 1
CMakeFiles/Makefile2:142: recipe for target 'src/test/CMakeFiles/./test_face_recognizer.bin.dir/all' failed
make[1]: *** [src/test/CMakeFiles/./test_face_recognizer.bin.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
------------------------------------------------------------


BUG: TypeError in merge with timedelta64 column

[x] closes #13389
[x] tests added / passed
[x] passes git diff upstream/master | flake8 --diff
[x] whatsnew entry

A root cause is isnull raises TypeError if datetime-like has other time unit than ns.
pd.isnull(np.array([1, 2], dtype='datetime64[D]'))
# TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

[Current coverage][cc-pull] is 85.23% (diff: 100%)

Merging [#13802][cc-pull] into [master][cc-base-branch] will decrease coverage by <.01%

@@             master     #13802   diff @@
==========================================
  Files           140        140
  Lines         50415      50415
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits          42970      42969     -1
- Misses         7445       7446     +1
  Partials          0          0

Powered by Codecov. Last update [98c5b88...8dbfde2][cc-compare]
[cc-base-branch]: https://codecov.io/gh/pydata/pandas/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/pydata/pandas/compare/98c5b88d6f9f7bb0afa4fbae49a045d93a1cb33f...8dbfde2204590455fc7e306ccdc405f91418d9eb?src=pr
[cc-pull]: https://codecov.io/gh/pydata/pandas/pull/13802?src=pr


Loading lazy load background images

I'm using lazy load and background images with the following parameters:
{{#swiper-container
  registerAs=bannersSwiper
  lazy=(hash loadPrevNext=true loadPrevNextAmount=1 loadOnTransitionStart=false elementClass="swiper-lazy" loadingClass="swiper-lazy-loading" loadedClass="swiper-lazy-loaded" preloaderClass="swiper-lazy-preloader")
  pagination=true
  loop=true
  navigation=true
  autoplay=10000
  observer=true}}

The image is never loaded, so i fixed adding the oberserver=true parameter and calling the load function:
later(this, () => this.bannersSwiper._swiper.lazy.load(), 500);

Hey thanks @raphaelns-developer for creating this issue.
To help me wrap my head around what the issue can you update this issue with:

Add the "Bug:" to the title if you believe this is a bug
Update the issue to a bug report with observed behavior and expected behavior
List the full steps to reproduce the bug, looks like you already have some example code there which is really helpful.

Thanks again, the more information we have the faster we can get this figured out!

I appreciate you clarifying that you believe there's a bug via the title.  Just for future reference you can write a full bug report by following guidelines like this.  Open source maintainers really do appreciate this!
Since I don't know exactly what you're expecting, I'd just first point out that:
<swiper-item>
...
</swiper-item>

Isn't documented in this addon or in the Swiper API as far as I can tell.  Maybe you're looking for {{swiper-slide}}?  Since this code isn't something we support I'm going to close this issue.  If you can provide code that is documented by this addon that fails to lazy load background images when expected, please reopen this issue.


Feature/time coeff floating point solution

Hey everyone,
as promised a while ago, I have added a solution to the floating point issue with the time interpolation coefficient for very deep mesh hierarchies. The problem was that even though the time steps were very large compared to floating point precision, we do so many of them on finer levels that the levels got out of sync. The solution is to synchronise the times between levels whenever we average to coarse. That way two levels can never go out of sync by more than the floating point error for one step, which is tiny.
I have also ensured that the RK4 coefficient always snaps to the correct value. That actually shouldn't be necessary anymore with the change above but it is still good book keeping I think.
Let me know what you think!
Thanks!
Markus

Thanks very much for doing this Markus, it looks great, I'm very happy to have this properly implemented now.


First changes to the extension + reading the article text

In this PR I am:

Modifying the template to say News Bias Detector
Make it open the popup when the extension icon is clicked
Installing @mozilla/readability to extract the article's text
Make the button action read the article source and count the number of characters in the article's text

It's looking like this on Firefox and Chrome:

@fcogidi next step is to try to make the model run, I'll start on that next week. After that I'll try to send input to the model.


Improve support for serialization/deserialization

Fix issues with Froto.Core.IO

Restructure to handle deserialization
Improve performance
Reduce (or eliminate) making multiple copies of strings and byte strings
Report errors on invalid encoding
Handle big-endian architectures
Unit test everything

The current Froto.Core.IO code, which does serialization/deserialization to/from the Protobuf Wire format, requires knowing the final datatype of a field before deserializing a field.
As background, the Wire Format only supports four data types: varint, fixed32, fixed64, and length-delimited.  (There is also an "group" format, but that is deprecated, not supported outside google, and not officially documented).  These get mapped into more specific data types, such as int32, sint32, byte string, and text string by a message definition, based on the field number.
The problem is that the final datatype isn't known until after parsing the field number and fields can arrive out-of-order.  Therefore, one approach could be to parse all fields in a message into the above four data types, then flow these into the final field representation by looking up the datatype (and field name) using the field number, then doing the appropriate type converstion.  This could also be done lazy via a sequence.
Another issue with the Core.IO code is that every varint requires creating a byte array and copying the underlying bytes, reducing performance and increasing the amount of GC pressure.

Started work on the above, and have it largely done on the refactor-and-complete-wireformat branch.
This pushed this branch to github mainly for review of work-in-progress.  Final code should support serialization/deserialization from/to class-based objects, and form basis for generated code.
Comments welcome!
Still need to implement:

Full decoding of an entire message into a container of some sort (probably just a list of WireFields... should be easy)
Helpers to map from wire-varint to object-field type; e.g, varint to sint32, length-delim to string, etc.
Helpers to map from field number to object-field type (then to set the actual field value), as well as the reverse (from field-type to wire-type).
Helpers to calculate the final size - of a value, field, and hence an entire message - so that a proper-size serialization buffer can be instantiated.

Going to refactor the ZeroCopyBuffer to something much closer to memoryTributory.
The use case is avoiding memory copies when receiving multiple frames in a single websocket message. Using a stream would also afford the flexibility to serialize off the wire for stream-based protocols. Just need to figure out how to efficiently decode utf8 into a string without making a copy of the utf8 stream bytes or underlying buffer bytes.

I really like what I see so far! :+1:

Abandoned the move to something like MemoryTributory for now; too much work to ensure all the edge conditions are correct, lol.  Might make a good optimization later.

Added a bunch of code for Serialization (in Core/Serializer.fs), as well as a sample of a class which implements serialization (Froto.Core.Test/TestProto.fs).
The code isn't 100% complete: it needs support for non-packed repeated fields and a few other things, there are no unit tests, and I have not even tested by hand.  However, would very much like feedback on the overall direction before investing more (of my very limited) time on this approach.
Here's what a serializable class might look like (yes, this compiles and might even work with the code from the last commit, above).
type Test () =

    inherit MessageBase()

    let mutable m_id = 0
    let mutable m_name = ""
    let mutable m_option = false
    let mutable m_test = ETest.Nada
    let mutable m_packedFixed32 : uint32 [] = Array.empty

    override x.DecoderRing =
        [
            1, ref m_id             |> Serializer.hydrateInt32
            2, ref m_name           |> Serializer.hydrateString
            3, ref m_option         |> Serializer.hydrateBool
            4, ref m_test           |> Serializer.hydrateEnum
            5, ref m_packedFixed32  |> Serializer.hydratePackedFixed32
        ]
        |> Map.ofList

    override x.EncoderRing =
        [
            m_id            |> Serializer.dehydrateVarint 1
            m_name          |> Serializer.dehydrateString 2
            m_option        |> Serializer.dehydrateBool 3
            m_test          |> Serializer.dehydrateVarint 4
            m_packedFixed32 |> Serializer.dehydratePackedFixed32 5
        ]

    static member Deserialize buf =
        let self = Test()
        self.Deserialize(buf) |> ignore
        self

    static member DeserializeLengthDelimited buf =
        let self = Test()
        self.DeserializeLengthDelimited(buf) |> ignore
        self

    member x.ID = m_id
    member x.Name = m_name
    member x.bOption = m_option
    member x.Test = m_test
    member x.PackedFixed32 = m_packedFixed32

and ETest =
    | Nada = 0
    | One = 1
    | Two = 2

Should have done the above as another commit; I thought a forced commit would update the previous comment.  Just fixed an obvious bug (missing parens on Utility.tagLen).

Repeated field support added:
type Test () =
    ...
    let mutable m_repeatedInt32 : int32 list = List.empty
        ...
        6, ref m_repeatedInt32  |> Serializer.hydrateRepeated Serializer.hydrateInt32
        ...
        m_repeatedInt32 |> Serializer.dehydrateRepeated Serializer.dehydrateVarint 6

James, I would recommend just adding a PR where the title has [WIP] prefix while it is work in progress. That will make is easier to review and comment. Looks awesome!

Done :)

PR #20 was merged and resolves this.


Change avatar image from Jazzicon to Blockies

We should change the solution for generated avatars placeholders. Now we use Jazzicon we should move to Blockies.
Before:

After:

@bonustrack shouldn't we keep the jazzicon at least for the connected wallet? I think we should keep the same as Metamask for wallet addresses.

mobile is not avaliable


High RAM usage after loading inference model into GPU

OS - Ubuntu 16.04
CUDA Version 10.0.130
Tensorflow version 1.13.1
YoloV2 - https://pjreddie.com/darknet/yolov2/
Trained a YOLOv2 architecture on the custom images and after freezing the graph, Model weight (.pb) file size is 268MB, Once we load this into gpu for inference it is consuming 7.93GB. I know tensorflow allocates the buffers for the output data at each stage at the beginning. Please, can somebody explain why there is so much memory usage by tensorflow.
Btw, if we run the same model with darknet framework it is taking 2.9GB of RAM.

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Make sure you also include the exact command if possible to produce the output included in your test case. If you are unclear what to include see the issue template displayed in the Github new issue template.
We ask for this in the issue submission template, because it is really difficult to help without that information. Thanks!

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Make sure you also include the exact command if possible to produce the output included in your test case. If you are unclear what to include see the issue template displayed in the Github new issue template.
We ask for this in the issue submission template, because it is really difficult to help without that information. Thanks!

Please, can somebody share or throw some insight into Tensorflow memory allocations while inference.

Apologies for the delay in response. Have a look on this link and let us know if that helps. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Fix header paths and README.md.

Correct header paths in enet.h and protocol.h.
Fix README.md extension.

The modifications I made to the enet.h and protocol.h files are not needed anymore because they were related to another pull request I closed, project-imprimis/libprimis-headers#9. If you want you can accept the the changes made to the README.md file, but otherwise this request can be closed.


region caching needs to take care cache invalidation

As the library caches bucket region, we would need to take care below cases

if a bucket is deleted after the bucket gets cached, we would need to invalidate the cache if we get the request for the same bucket
if a bucket is deleted and recreated after the bucket gets cached, we would need to invalidate the cache if we get region mismatch errors from amazon s3

retry logic in this is needed for two cases and

400 Bad Request

<Error>400 Bad Request<Message>400 Bad Request</Message><BucketName>anythinglikenothing</BucketName><Key></Key><RequestId>10B1CB41110FF511</RequestId><HostId>6CfZYjQ1pUjINOsAszS29xrc/7y73Mb26GNCdizVauaUeZ4sAMQwusx/lTn2KI8p19HnM27ZqrM=</HostId><AmzBucketRegion>us-west-2</AmzBucketRegion></Error>

AuthorizationHeaderMalformed

<Error>AuthorizationHeaderMalformed<Message>The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-west-2'</Message><BucketName></BucketName><Key></Key><RequestId>1531B8C99ED42ACD</RequestId><HostId>47gvFpzOkdf9Kyr/G0mAvqCu55osRPtNjtYuIUPmm+yxXrjd+aIneNqukwhM1K0IOu3pG61+zCY=</HostId><AmzBucketRegion></AmzBucketRegion></Error>

Keeping them here to remember.


Merge ippdoclint code into the upstream repo (Issue #29)

The pull request contains the code for the ippdoclint program written as part of Google Summer of Code 2018 project. A comprehensive code review is still needed.

I am working to fix the failing CI check.

The reason this is failing is because the libraries used are not available on macOS and MUST NOT be hardcoded. I'll work on refactoring as needed...

OK, I'll be tracking the merge progress in Issue #29; we won't be using the code exactly as-is and I need to update things for changes in ippserver/ippeveprinter as well.


Update MSRest Tool Chain

The version of ms-rest-js we use is 0.2.8. Current is 1.0.455.

Sync to latest version of autorest.typescript.

Add code generation step to the build, to avoid checking in generated code.

Deep dive for other packages in the tool chain that need to be updated.

In a tangential manner, we have out of date dependencies or non-synced in places such as tools/ and transcripts/.
"non-synced" meaning the dependencies in these folders don't match dependencies that are either globally installed or hoisted in the build process.
Additionally, there are a large number of dependencies in the tools/package.json that aren't used, namely the azure packages.
Staying at an older version of npm may have (somehow) shielded us from some of the changes that have been added to PR #575, e.g. the updates to the "set-dependency-versions" script; but at a superficial level the changes to the script should have been performed quite some time ago.

Fixed via #601


Split delimited set into N-mentions+others

Assuming data in a delimited set variable, where we know the response data is ordered, such as:
6;56;3;40;22;21;36;1;12;43;11;18;15;17;27;25;48;57;55;62;
It would be good to be able split the variable into N+1 new variables where N is the number of single-response mentions from the first, with all mentions beyond N ending up in a delimited set with all other responses.
This will let us transform ordered delimited set data into first/second/third/etc. mentions + other mentions.

signature will be: nfirst(ds, name, n_first=3, others='others', reduce_values=False)

Docstring not yet in, therefore parameters:

name: the name of the delimited set.
n_first: get the first n  mentions from the code string.
other: naming suffix for variable name & label (label is not good, I copy and pasted from the variable name; it should be more like  '(others)', also true for the mentions...). If None, there won't be an other-variable.
reduce_values: drop all metadata based on codes_in_data, i.e. get rid of empty categories.

Hell, I simply fixed the variable labels quickly.

Clean-up needed, code has some smaller redundancies.

all done. closed.


I run the model, but it doesn't convergence. Is there any point that I need to pay attention to?

I run the following code:
# transductive 1-shot 5-way Omniglot.
python -u run_omniglot.py --shots 1 --inner-batch 25 --inner-iters 3 --meta-step 1 --meta-batch 10 --meta-iters 100000 --eval-batch 25 --eval-iters 5 --learning-rate 0.001 --meta-step-final 0 --train-shots 15 --checkpoint ckpt_o15t --transductive

The output results is "batch XXX: train=0.000000 test=0.000000".
Is there any wrong?

Could you show multiple lines of the output? Each line in the output corresponds to a single task evaluation, not an average, so there will be some zeros unless the model is perfect. Does every single line look like that?
By the way, a better way to see the results is to let the run finish, at which point a full evaluation is performed. With those arguments, this will be after 100K iterations. You can also use tensorboard to see smoothed learning curves during training.

@unixpickle
I fails to upload the picture of tensorboard curves yesterday. The training accuracy curves I get is as follow.

TensorBoard has a smoothing option, which should make the curves easier to read.
Some things to check:

Did you definitely download all of Omniglot? There should be ~30K images.
If you let the script run for the full 100K iterations, what accuracy does it output at the end?
What version of TensorFlow/Python are you using?


Fix missing state file path in error message on "ship update"

What I Did
Fix missing state file path on "ship update". Previously the following was printed
There was an unexpected error! No state file found at , please run "ship init"

How I Did it
Set a default in the pflags StringVar state-file to the value of constants.StatePath
How to verify it
$ rm -rf .ship && ship update

should print
There was an unexpected error! No state file found at .ship/state.json, please run "ship init"

There was an error configuring the application. A debug log has been written to ".ship/debug.log", please include it in any support inquiries.

Description for the Changelog
Fix missing state file path in error message on "ship update"
:boat:

I think integration test failures may be legitimate. need to investigate


Name & Pronunciation

Please add the right pronunciation to the README.md, and in addition it would be good to document the origin of the name.
CC: @sirupsen

"log" as the normal English pronouncation.
"rus" as in the last syllable of "walrus".
Why? Because I like walruses. 👍


Language Consideration

I think it's better for this library to be completely re-written in Rust.

this is ain't a library, this just merely a tutorial to guide those lost souls onto the righteous path.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/twoh/twoh-easy-QRCode-scanner-sampleapp/issues/1#issuecomment-239762495,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABnPMAgFmRy6dUXDNFFt1T09OblD5D4Bks5qgDDYgaJpZM4JkNVI
.

--
Best Regards,
Esa Firman.
Mobile App Developer
http://about.me/EsaFirm


feat: add originalLanguage to the Track

Shaka in most of places normalizes tracks' language code to be compliant with ISO 639-1 when possible. However, it does not do that all the time (i.e. normalization is missing in MSS parser) and there is no way to get value that has been explicitly set in a manifest. Moreover, documentation is misleading, as it claims that value is taken directly from a manifest.
Normalization should take place, specifically to easify PeriodCombiner algorithm and also to not break existing applications.
However, original value can be desired for some implementations.
This PR introduces new field to get original language value from the manifest.

Thanks for the contribution.


Add nightly job to validate published DNS records

We want to make sure that the published DNS records match those saved
in the govuk-dns-config repository. To do this every night we will run
the validate_dns rake task which will match the YAML file data to
what is currently available in production.
This commit adds a validate_published_dns task to Jenkins and
configures it to run every night between midnight and 0259.

Looks good! Can we ensure there's a mechanism to alert us (by email?) if there's a problem?

@surminus I've added email alerting based on check_cdn_ip_ranges so we should get told if the job fails.


can i convert 3d coordinates to bvh file?

I have 3D coordinate data (.h5 file)
I want to convert the data of these coordinates into a bvh file.
What should I do?

h5 file has Frame1(X1, Y1, Z1, X2, Y2, Z2, ... Xn, Yn, Xn)
......
FrameW(X1, Y1, Z1, X2, Y2, Z2, ... Xn, Yn, Xn)

Yes, just replace 3D joints estimation result with your own data and the following porcesses are the same.
Ensure that the joint order is compatibale with the skeleton definition.

It has finger 3d joint
Can I convert it too?

Finger joint is not included. You can write your own skeleton module to implement it.

@supernova817  Did you convert the finger 3d joint to .bvh file successful? can you give me a suggest?

@supernova817  Did you convert the finger 3d joint to .bvh file successful? can you give me a suggest?


Header authentication

Can you also add a global flag to completely disable this functionality? HEADER_AUTH_ENABLED and default it to false?
I don't have too much knowledge of header auth, but I do know that it can be pretty dangerous if the upstream proxy is not configured properly. Obviously that is not Wishlist's job to know about that or enforce it, but I think there should be a disclaimer in the docs about that. Maybe something like

[!WARNING]
When header authentication is enabled, Wishlist makes no assumptions about the validity of the headers. It is up to you to have your proxy properly configured. An improperly configured proxy could allow anyone to gain access to the application by forging the headers.

Couple other things to consider

How will this play with the "setup wizard" flow
Add this to the signup flow for users who receive an invite token/url
Should we block users who were created via headers from changing or resetting their password (change password flow won't work because the password is blank)

Couple other things to consider

How will this play with the "setup wizard" flow
Add this to the signup flow for users who receive an invite token/url
Should we block users who were created via headers from changing or resetting their password (change password flow won't work because the password is blank)

I have now made it so that the first user goes through the setup wizard regardless of whether proxy auth is enabled and values are sent in headers. If you want the first user to work with proxy auth, you need to set the username to the same as what will be sent with the headers.
Should this automatically create the user and add them to the group that the invitation pertains to?
I can make it so this is blocked in the UI. It doesn't really matter if the user changes the password or not, but it might be good to hide it to avoid showing unnecessary things.

Couple other things to consider

How will this play with the "setup wizard" flow
Add this to the signup flow for users who receive an invite token/url
Should we block users who were created via headers from changing or resetting their password (change password flow won't work because the password is blank)

* I have now made it so that the first user goes through the setup wizard regardless of whether proxy auth is enabled and values are sent in headers. If you want the first user to work with proxy auth, you need to set the username to the same as what will be sent with the headers.

* Should this automatically create the user and add them to the group that the invitation pertains to?

* I can make it so this is blocked in the UI. It doesn't really matter if the user changes the password or not, but it might be good to hide it to avoid showing unnecessary things.

Sounds good
I think yea, create the user automatically and assign them to the group in the invite. Users can also be invited without a group, so use the default group (if set)
I think just make the password reset fields disabled on the user account page. If a user goes through the password reset flow and doesn't have a password, then we can allow that, I suppose

@cmintey This is now ready for a review.
I have implemented a function for creating a user, just so don't have duplicated code everywhere.

I have added logging @cmintey


[FEATURE REQUEST] add easy link to download page

When trying to find apps with specific specifications, it is kind of hard to navigate all the repos and to find the download link in each of them.
Maybe it would be worthwhile to add a download counter too.

Hello wanted to contribute for the first time can you please elaborate more


fly.io

just needs a docker file and a fly.toml file
then their golang cli from https://fly.io/docs/hands-on/install-flyctl/

I created a PR based on the docs I found.


Problem to configure custom dashboard on grafana

What did you do?
Created a dashboard manually, export as json, created a new config map with my json config and edit grafana deployment to read the new config map.
What did you expect to see?
New dashboard shows up.
What did you see instead? Under which circumstances?
My new dashboard did not work and when i check the grafana deployment, my configuration disappear from yaml.
Environment
Openshift 3.11 with Cluster Monitoring Operator
** Grafana Deploy:

mountPath: /grafana-dashboard-definitions/0/k8s-custom
name: grafana-dashboard-k8s-custom

configMap:
defaultMode: 420
name: grafana-dashboard-k8s-custom
name: grafana-dashboard-k8s-custom

Please file a bugzilla when filing issues about the OpenShift cluster monitoring stack. The supported OpenShift stack does not allow modifying the shipped Grafana instance, any modifications you do will automatically be reverted. Any change to it is a feature request.

Thanks @brancz, so, i need to accept that built in dashboards have all i need and if i have a custom metrics on my cluster i will need to configure another grafana to configure custom dashboard to view my metrics?

Yes, also note that the Prometheus server is the same way, if you want additional metrics (as in custom metrics from your applications) you also need a separate Prometheus server for that.

Note that any modification or usage of the stack outside the supported use voids any support or support of upgrades.
Generally Grafana already does watch for file changes for anything used by its provisioning API, but I would suggest you to ask those questions best with the Grafana folks :) .

Closing due to inactivity.


Completion should avoid fuzzy searching methods when the typed characters match keywords

Description
Reproduction steps

In a project that does NOT use Sorbet, create a test.rb file

Type foo do

The Ruby LSP would try to suggest define_singleton_method when do is typed, like:

I consider this a bug because it means users will not be able to type do and then immediately type newline, which is very interruptive.

According to @vinistock, VS Code only sends the request when it has d, and then do fuzzy search completely on the editor side against the response we returned when do is typed.
We have 2 possible suggestions:

Mark the completion response as isIncomplete: false so VS Code will send another request when do is typed

This may have performance impact

Our completion can also return keyword suggestion, which is what Sorbet LSP does


Get password from environment var and encrypt an unencrypted file

Great plugin!
Would be nice if you could get the password from the standard environment variable so not asking it each time
Also would be nice to be able to encrypt a non encrypted file,.
As far as I can see, you can unencrypt and re encrypt and already encrypted by not when the encryption hasn't been run once..

@iangregsondev Thanks, for participating! New file yaml property encryption is really needed and will be added soon.
What about your other suggestion. Currently there is a way to store passwords in default IDEA key store. You only need to activate checkbox "Remember password" while entering the password.
Do you have use cases where you really need the password in environment variable instead?

@sadv1r Thanks for the response. With regards to remembering password, this seems to popup on every single (new) file I try to access.
Some people do store their password in an ENV variable so it would be really handy to work like that.
I came from using a plugin in vs code and it had this functionality which was nice - but it had other issues which is why I moved over to using the IDEA pllugin.

@iangregsondev Ok, thanks, for explanation! I'll check VS Code and official tool functionality around environment variables and probably it will be ported here

Adding support for ANSIBLE_VAULT_PASSWORD_FILE environment variable.


An endpoint to search for ePIs using identifier should exist

It exists, as we are using the standard FHIR API.
https://BASE_URL/fhir/Bundle/_search?identifier=your_identifier


No admin accounts left

I noticed the app actually make the admin a standard user when I check user in system preferences. Then I deleted the app and the system did not have an admin anymore. And as a standard user I could not change it to an admin anymore. And I could not change it back to admin without the app which was deleted.
Of course I did this on purpose but is’t kinda strange situation you can end up with if someone deletes the app while the only admin is demoted.

All I can say is "Don't do that."

Assuming you are deploying Privileges with a management solution (as it is surely only designed for enterprise environments), you can just deploy it again.


Add a version

I'm only doing a PR so that if someone knows better than me if this is a bad idea they might be able to stop me. I'll merge this soon otherwise.

I'm by no means an expert, but shouldn't this change also modify this line to unit class Pod::To::HTML:ver<0.0.1> ?

Not necessarily

Added! I guess assuming ci passes again I'll merge.

Weird that adding the version makes that fail. I know that moving use URI... above unit would fix that though

Naw... I think it's an unrelated panda issue which makes it so you have to try every install twice :(

Seems the version in METAfile has already been updated, making this PR obsolete. Closing.


Problem with running multiple Client

Server responses with rsp code=100
[ INFO    ] LocalMemoryStorage is initialized in read-write mode
[ INFO    ] Initializing logging facility
[ FATAL   ] Cannot open write ahead log for read. Exiting.
This looks like a concurrency problem but it only happens in I run more than one instance of a client. I can run one instance of my WPF client and instance of the Console App both connected to the same server and no write ahead log error is generated. My guess is that there is some type of setting I must be missing. Can anyone point me in the direction look for answers.

I ran into the same issue today. Running DistributedHashtable sample in embedded mode. The issue appears when attempting to run two separate processes: one for server and one for client.
When running the sample as a single process the issue does not appear. So it does indeed seem to be related to a concurrency problem. I can work around it, so no practical issue for me at this time.

@TonyLo1 Hey, tony the Graph Engine server API is powerful and a bit unorthodox in its raw form; the DistributedHashTable sample is purposed only to demonstrate how one can implement a distributed hash table - I'm certain that you understand that; however, what is not clearly described in any of the samples is what requirements are to host server-side so that multiple server instances and clients works. In my original post, I made the assumption that I could just fired-up an additional server and client instances but that is not the right approach; after many trial and error attempts, I finally learned the importance of the TrinityConfig object and the role it plays in the managing the Trinity runtime. Also depending on the "Server" model and how you host the server implementation, your implementation will change some as well. So as it turns out in my original post there is no concurrency issue - it was an end-user problem. I've been using the Graph Engine for 3 years now and I run into this type of misunderstanding quite a bit. The technology does work but at this point, you have to explore, dig around the source code and be curious. We are working on improving the documentation and samples and better unit and integration testing. The core of the technology seems to test only the very core; a great deal more testing and better documentation are required.

@TonyLo1 Take a look in my repro and find the Trinity.Client.TestServer solution. I've got the GE Server, a .NET Core 3.1 Console App, and .NET Core 3.1 WPF App all running at the same time; the clients are running the same code. There also some I/O routed to the VS output window. This is an example of "multi" and parallel-tasking code working seamlessly with the GE - no concurrency issues at all.


try GitHub actions to mark needs-rebase

trying GitHub actions to mark needs-rebase - don't know if this will work

lgtm :shrug:


getCurrentSSID and getCurrentBSSID wrong in android

WifiWizard Version 0.2.10
getCurrentSSID(function(successParam)(), function(errorParam));
In android platform: there are a double quotes more in successParam. I think it may be a bug.

In IOS platform: It works fine.

and "getCurrentBSSID(function(successParam)(), function(errorParam)); " failed in android. but works fine in ios.

The problem fixed in #59.

Nice fix saddly https://github.com/hoerresb/WifiWizard/pull/59 never got merged so if you run into this problem you're better off using a fork.


Create separate loggers

Summary
Adds the ability to create separate loggers per Plugin instance
Closes #1

I think this should do, yeah. For the users' sake we should probably also document the default logger's name (i.e. disnake.ext.plugins.plugin, iirc) in case they want to modify it, so they don't have to look through source code to find it. Outside of that, I think this should be good to merge.

I just got an idea to set the default logger at class level, for ease of access had a user decided to override it.

Aw, nvm

lgtm!


custom syntax providers

it would be great to be able to use pluggable non-typescript syntax right in the typescript code
for example, i need a notion of a valid URI literal, i have its grammar ready, i wish there was a way to specify a valid URI in a typescript code and get it checked at the compile time
currently my options are:

constructor functions (fail only at runtime)
 const uri = parseUri('http://google.com');

builders (unnatural, clumsy)
  const uri = new UriBuilder().protocol('http').host('google.com').done();

i wish i could do something like this:
const uri: URI via URIParserAndEmitter = http://google.com; // <-- terse & natural, fails at build
// or
const uri: via URIParserAndEmitter = http://google.com; // <-- terse & natural, fails at build

how it works
in the last example URIParserAndEmitter refers to a plugin that:

takes over and parses the expression on the right side of = at compile time
fails if needed
passes the parsed AST to the custom TS emitter (part of the plugin)
spits out the resulting piece of TS AST back to the TS compiler

parsing scope
TS should not care or limit how far the custom parser can go in the source text of the file:

if parsing is successful, take the control back from the next unconsumed character, assuming getting back to the statement, expression, or declaration context depending on where the custom parsing started
if parsing fails, do not attempt to parse the rest of the file (price to pay for simplicity of things)

applications

units of measure
integer numbers (no frations), positive numbers (no negative sign)
emails, markdown
jsx, xml, html
any DSL (domain specific language)
c#, c++, java, ....

pros

one time investment that gives unlimited extensibility
anyone can take part in extending the language

cons

anyone can take part in extending the language
the repository of approved extensions of high quality needs to be managed (akin @types)
parsers might collide

I think this may be took so far on changing the syntax
If we can limit this to a string template that might be better

Like this
import
URIParserAndEmitter from ....
const u = URIParserAndEmitter(url)
This URIParserAndEmitter both generate runtime code (like a normal library) and claim itself as a typescript plugin (get type info from typescript, provide type checking), and can safely downgrade to that not support plugin one

any expression in any language is self-contained

string literal goes up to "
number literal goes up to last digit
JSON literal goes up to the last (balanced) closing brace

it doesn't seem that the scope of an expression needs to be limited

I wish that was simple to add. the reality is everything in the compiler relies on the AST kinds, and having new kinds added to the system affects everything. Maybe if we had a system that abstracts about all of these details and can reason about code constructs in a high-level fashion it would be easier.

you add a special AST node with kind of SyntaxKind.Plugin = 255 which would be an escape hatch from TS to whatever plugins use, then next to the kind you add a subkind of a string which would hold a sort of guid or a namespace that would be a marker for plugins to it's their stuff
think about // comments you don't do much with them (well maybe now you do) but the idea is the same

The folks who run Svelte are betting on compilers being the next step in frameworks. If that bet pans out, then a feature like this would allow projects to properly type things in their system, which would let downstream devs reap the benefits of TS, even with strange framework-specific syntax. React works beautifully in TS. It'd be cool if that kind of deep integration was available to others.


Mac Launcher PATH Incorrect

I was wondering if electron could/should implement something like https://github.com/sindresorhus/fix-path to correct the PATH issue on Mac. I am still having this issue when launching atom from the launcher. See https://github.com/andischerer/atom-svn/issues/10

From 10.9 OS X stops assigning $PATH for programs launched from Finder, so we are just following the default behavior of OS X, if we change it we are probably doing the wrong thing.


Fine-tunning for table data extraction

Hi,
is it possible to train donut for table data extraction and if so how would one build the metadata.jsonl gt_parse to include rowspans and collspans?
I want to extract all rows / columns of all tables in the image.
For example this table:

Is this format allowed or si it a better option to specify if a row/col is spanned over multiple rows/cols?
{
 table: [
  {
   rows: [
    [
     { 0: 'Day', 1: 'Seminar', 2: 'Seminar', 3: 'Seminar' },
     { 0: 'Day', 1: 'Schedule', 2: 'Schedule', 3: 'Topic' },
     { 0: 'Day', 1: 'Begin', 2: 'End', 3: 'Topic' },
    ],
    [
     { 0: 'Monday', 1: '8:00 a.m.', 2: '5:00 p.m.', 3: 'Introduction to XML' },
     { 0: 'Monday', 1: '8:00 a.m.', 2: '5:00 p.m.', 3: 'Validity DTD and Relax NG' },
    ]
   ],
  },
 ],
...
}

Thanks

I think the best option would be to to add some new special tokens ( , as an example) and define your own output structure that you can parse
Then, train donut to predict your structure and you are good to go. It will require some creativity, but I'm sure you'll get it 👌

I think the best option would be to to add some new special tokens ( , as an example) and define your own output structure that you can parse
Then, train donut to predict your structure and you are good to go. It will require some creativity, but I'm sure you'll get it 👌
Here's a naive sample I might make to represent a row with 2 columns. However, multi spanning rows/columns might take come more thought
<row><col>col1</col><col>col2</col></row>

How can we add special tokens?
e.g. I've task similar to parsing but in a slightly different format
{
  k1: v1,
  k2: v2,
  ...
  k3: [
    {
      k4: v4,
      ...
    },
    {
      k5: v5,
      ...
    },
  ]
}

but this donut model seems to be missing "[" and "]"  i.e. array of dictionaries w.r.t k3
i.e. output for this section as as follows
<k3><k4><v4>...<sep/><k5><v5>...<sep/>

So how can I make the model learn to output "[" ?

here is a test i've done, without adding special tokens:
{"file_name":"PMC1064074_table_0.jpg","ground_truth":"{\"gt_parse\":{\"cells\":[{\"row_0_col_0\":\"Kinetic parameter\"},{\"row_0_col_1\":\"ND\"},{\"row_0_col_2\":\"D\"},{\"row_0_col_3\":\"D + dn-RhoA\"},{\"row_0_col_4\":\"D + dn-Rac1\"},{\"row_1_col_0\":\"Vmax\"},{\"row_1_col_1\":\"19.6 ± 0.75\"},{\"row_1_col_2\":\"26.2 ± 0.86*\"},{\"row_1_col_3\":\"31.3 ± 0.88†\"},{\"row_1_col_4\":\"21.6 ± 0.9\"},{\"row_2_col_0\":\"K' for H+\"},{\"row_2_col_1\":\"0.150 ± 0.02\"},{\"row_2_col_2\":\"0.113 ± 0.05†\"},{\"row_2_col_3\":\"0.105 ± 0.07†\"},{\"row_2_col_4\":\"0.137 ± 0.023\"},{\"row_3_col_0\":\"napp\"},{\"row_3_col_1\":\"2.19\"},{\"row_3_col_2\":\"2.16\"},{\"row_3_col_3\":\"2.03\"},{\"row_3_col_4\":\"2.23\"}]}}"}

You can try something like this...
{"file_name": "image.jpg", "ground_truth": "{\"gt_parse\":{\"k1\":\"v1\",\"k2\":\"v2\",k3\":[{\"k4\":\"v4\"},{\"k5\":\"v5\"} ...}]}}"}

Can anybody tell me whether this has been resolved or not because I am also working on the same problem. If this has been done then please tell me what was the accuracy of the fine-tune model?


Updated miq_request.user_message to set miq_request.message attribute.

Set "Last Message" for miq_request immediately when setting the user message.
The following RFE had given users the ability to override the default messaging used in service state machine processing.
https://bugzilla.redhat.com/show_bug.cgi?id=1161253
Since the miq_request.user_message method sets the "Last Message" only for state machine error conditions and/or the finished state, long running state machines would not report correct "Last Message" until the end of the state machine.
Changed the user_message= method to set the miq_request.message to report an  accurate "Last Message" status during state machine processing.
https://bugzilla.redhat.com/show_bug.cgi?id=1196369

@gmcculloug
Change made.


⚠ Jenkins Plugins Artifactory has degraded performance

In d183e74, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 2485 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 1035b76 after 1 hour, 39 minutes.


online demo

Hello, when I ran the online demo before, it was normal, but now I get the error: [Errno 28] No space left on device. Can you help me solve it?

yeap, the server storage seems to be KO. Was probably not a good idea to keep all the uploaded images on it...


hvPlotExplorer issues with Fields pane

Some issues I have noticed when working with the Fields pane of the hvPlotExplorer.
Code used:
import hvplot.ui
import hvplot.pandas
import panel as pn
pn.extension()

from bokeh.sampledata import penguins

df = penguins.data
hvplot.ui.hvPlotExplorer(df)

1. Some kinds only show questionsmark in HoverTools
Kinds are area, density, and violin

2. Changing y to index as the first thing raises an exception that is not caught.
https://user-images.githubusercontent.com/19758978/180437152-de647b60-2833-4efa-a524-bae11657595b.mp4
3. Kind=errorbars fails with Dimension 2 not found

4. Kind=heatmap collapses the UI
https://user-images.githubusercontent.com/19758978/180438111-8bcf375e-2941-4ec3-80e4-b0d191e2e576.mp4

Point 1
Not related to Explorer but a Holoviews problem, as I can get it to work with a Bokeh.
https://user-images.githubusercontent.com/19758978/181917501-499270b6-c34a-4b19-a6da-f3ea1a653ef0.mp4
import holoviews as hv
from bokeh.models import HoverTool

hv.extension("bokeh")

hover = HoverTool(tooltips=[("x", "@x"), ("y", "@{y}")])
hv.Area((range(100), range(100))).opts(tools=[hover])

from bokeh.plotting import figure, show
from bokeh.models import HoverTool, ColumnDataSource

source = ColumnDataSource(dict(x=range(100),y=range(100)))

p = figure(width=300, height=300)
p.varea(x='x', y1=0, y2='y', source=source)
p.add_tools(hover)
show(p)


PFE accordion button border color

Currently the top and bottom borders for accordion buttons is set to #ececec.
The border color should be #d2d2d2.
On some gray backgrounds it is difficult to see the borders:

Created a PR for this: https://github.com/patternfly/patternfly-elements/pull/414

https://github.com/patternfly/patternfly-elements/pull/414 has been merged


Set notification team type as a prefix to avoid long name duplicates

We are having some issues where pipeline names that are just under the 64 character team name length limit, like python - azure-communication-networktraversal - tests-weekly. In these cases, they won't throw an error condition, but with the prefix separator -- they hit the max and the team names are identical, when they need to be suffixed for either Notifications or Sync Notifications. If we move the suffix to a short prefix, it will avoid this name overlap issue altogether. Also, since the suffix often gets truncated down to a few characters anyway, I don't think we're losing any clarity of purpose, since the automation will also provide a clear description field like purpose: ParentNotificationTeam which gets shown in the team list view.
Trying to figure out the best way to test this, but I wanted to throw the PR up to get feedback on the approach.

@benbp once you change these names will the existing teams get updated correctly or we end up with a duplicate set of teams and need to clean-up the older ones?

@benbp Ben Broderick Phillips FTE once you change these names will the existing teams get updated correctly or we end up with a duplicate set of teams and need to clean-up the older ones?

From reading the code, I think all the existing notification team names will be updated as it looks things up by team ID from the pipeline. I have to do some testing to verify though. I'd prefer not to have to change all the names, and the downside of having a prefix is that the sync and parent notification pair for a given pipeline doesn't get sorted together anymore. However I think keeping all the names consistent as opposed to a separate convention for >64 char names is preferable.


Font atlas

A lot of our font rendering is being done on the CPU-side (read: all of it).
Instead, we should render each character (pretty much the ASCII alphabet) into a single "texture", and use an "atlas" (sort of like a spritesheet), to indicate which character OpenGL should draw.
A video on how to do this in Java: https://www.youtube.com/watch?v=mnIQEQoHHCU&list=PLRIWtICgwaX0u7Rf9zkZhLoLuZVfUksDP&index=32

@Newbrict You wrote the original version of the current font renderer, what do you think of this?

In the past we used an atlas. but we used a monospace atlas. If you want to build this out either we need a very detailed explanation on how to create the proper font files to be used, or the atlas creation has to be done on preload from ttf file.
unless a lot of code goes into this, using an atlas is way less usable than just rendering on the cpu

Also from what I remember you can really optimize my font renderer. I don't cache anything where you could

Cache the texture?
On Mon, May 23, 2016, 11:02 AM Etienne Bruines<EMAIL_ADDRESS>wrote:

Changed to 1.0 milestone, because currently the fonts on the web, are too
slow. Rendering one string each frame, drops the framerate from 60 to
30.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/EngoEngine/engo/issues/232#issuecomment-221005488

Not that much can be cached. There's some progress in #330, although I didn't test the performance yet.


Support Numpy >= 2.0.0 and fix tests

Support numpy >= 2.0.0 (np.string_ -> np.bytes_).
Fix test utility corner case error (test_numpy.twosigfigs function).
Fix typo in build pipeline Python versions config list.
aaand other stuff I'm discovering along the way ...

Hi Mateusz, I made this PR that fixes the histogrammar unit tests for numpy<2.0.0 and pandas<2.0.0:
https://github.com/histogrammar/histogrammar-python/pull/66
They were minor issues only. I asked Simon to do a short review, or perhaps you can have a quick look.
For your PR, once this one is merged can you please rebase? Once your PR is merged in I will switch to pyproject.toml, then release the new patch version, and then switch to upgrading popmon.
Btw, thanks for the work you already put in, I appreciate it.

Thanks @mbaak !
Shall I include version bump / changelog / README updates in my PR or this will be part of pyproject.toml/release version PR ?

I thought of adding my (small) fixes to the changelog & README after your fixes are in, so for the new release.
(But you can add it too if you want.)

Still getting one error in the tests:
self = <tests.test_numpy.TestPandas testMethod=test_n_bins>

    def test_n_bins(self):
        """ Test getting the number of allocated bins
        """
        with Pandas() as pd, Numpy() as np:  # noqa
            if pd is None or np is None:
                return
            sys.stderr.write("\n")

            df, hist1, hist2, hist3 = get_test_histograms1()

            assert hist1.n_bins == 5
            assert hist2.n_bins == 5
>           assert hist3.n_bins == 7
E           assert 5 == 7
E            +  where 5 = <SparselyBin binWidth=86400000000000.0 bins=Bin nanflow=Count>.n_bins

test_numpy.py:714: AssertionError

This test was not really testes in master because of error in Pandas() context manager.

Fixed the test as you suggested, ready for review :)


Fixes for composer

add composer files
fix some bugs after adding composer

@jamalwsilva
Thank you so much!
I appreciate your PR 👍


Chapter 3 Challenge 2 [Co-op vs BitRey loose] styling related feedback (Christoph)

not use a fixed width at smaller sizes, but a max-width. That allows the boxes to shrink a little further if needed, like for iPhone SE. (for the waiting screen avatar boxes).
centering the copy on mobile
the “Waiting…” text would slightly fade in and out to indicate that there’s activity. And then if the images faded in nicely.

Hey @vinayaksh42  for the second issue i don't know what copy should me center aligned here (LGTM)
screenshot below

I believe the issue there is mobile, I'm not sure though as it does seem inline with other pages.

Closed by #613


Footer

Thank you for this PR
One thing I would request from you in the future is that you provide a description for the PR as it helps to quickly figure out what the issue was and what the solution is. This isn't for the reviewer but also to provide some context in the future for someone that may want to make an informed  change.

@Selasi3 - I'm noticing an issue here that I think may be git related.
Your footer changes were added at one point and removed in the commit history.
You may want to take a look (also this could have been discovered with writing a test for this.)
I cannot approve this PR until the following things happen.

[ ] Return Footer Code to the Codebase (you can try to do a reset to the commit where the footer content was added and perform a partial add of the footer). Or if you have the code reapply it. (The code will get squashed down anyway)
[ ] Create a test that ensures the pages that we want are added into the footer. - You can do this with playwright which we are using.

Hello Sir,
Please I have made the changes and requested a pull request.
Thank you.
Kind regards.
On Tue, Oct 1, 2024 at 4:44 PM Jay Miller @.***> wrote:

@Selasi3 https://github.com/Selasi3 - I'm noticing an issue here that I
think may be git related.
Your footer changes were added at one point and removed in the commit
history.
You may want to take a look (also this could have been discovered with
writing a test for this.)
I cannot approve this PR until the following things happen.

Return Footer Code to the Codebase (you can try to do a reset to the
commit where the footer content was added and perform a partial add of the
footer). Or if you have the code reapply it. (The code will get squashed
down anyway)
Create a test that ensures the pages that we want are added into the
footer. - You can do this with playwright which we are using.

—
Reply to this email directly, view it on GitHub
https://github.com/BlackPythonDevs/blackpythondevs.github.io/pull/494#issuecomment-2386493068,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJQLYWNSM3ETOBXPYXKMXNTZZLGNBAVCNFSM6AAAAABPFCJCTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBWGQ4TGMBWHA
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

--
Ayittah Selasi Randy
Tel. no:<PHONE_NUMBER>

Closing this as it's been  3 weeks with no response to the request.


Definition request for polyglot.js

Add support for polyglot.js https://github.com/airbnb/polyglot.js

by #3780


Allowing displaying a prompt during incomplete validation

This change will let consumers write a custom prompt on incomplete validation result, one of the use cases is allowing REPL to display an indicator that it's expecting more input before evaluating (like node multi line  displaying ...  as pseudo-prompt).
Semver major due the breaking change.

I see that:
https://github.com/kkawakam/rustyline/blob/250c9e6c6655de8f4b392e7196f618b5d8b06a95/src/command.rs#L145-L147
occurs after the layout change, so even if newline was inserted when there is a message, it won't be seen. Should this be refactored instead to be an option? (ie: incompletePrompt), as current implementation either inserts a new line or show the validation message, not both.

This change will let consumers write a custom prompt on incomplete validation result, ...

You mean a custom hint ?

as current implementation either inserts a new line or show the validation message, not both.

Yep currently you can't have both.

This change will let consumers write a custom prompt on incomplete validation result, ...

You mean a custom hint ?

I don't think this would clasify as a hint, since it will appear to the left of user input, and shouldn't disappear once user start typing nor when he enter more lines, ie (\n represents user triggered newlines, and ...  would be the "pseudo-prompt" that appears on each incomplete line):
> {\n
... a:1\n
... }\n
{ a: 1 }
>

I don't think this would clasify as a hint, since it will appear to the left of user input

refresh_line_with_msg is used to display a message / hint / suggestion...

I don't think this would clasify as a hint, since it will appear to the left of user input

refresh_line_with_msg is used to display a message / hint / suggestion...

Yes, I've tried with that, but there's 2 issues:

Input is placed in the same place as the message, given message being ... :

> \n
...
^input is placed in this column (1)
    ^ but should be placed here (5)

As soon the user types something, the message disappear, but the desired behavior is for it to persist, even if new lines are added, the only time it should be removed if the user deletes that line.

What you want is a continuation prompt.
https://python-prompt-toolkit.readthedocs.io/en/master/pages/asking_for_input.html?highlight=continuation#multiline-input

@gwenn The only limitation I see is that both prompts must have the same width, which wouldn't apply for >  & ... , but it definitely works, thanks for the link.


Battery status not updating when charging

Describe the bug
I have a T8210 Eufy doorbell. When in use the integration shows the correct battery percentage. However, when I put the doorbell on charge, the battery status doesn't change in the integration. It does update in the Eufy IOS app.
To reproduce

Check battery charge status
Put doorbell on charge
See battery status doesn't update in integration, but does in Eufy app.

Expected behavior
Battery status in the integration should update when charging, like it does in the IOS app.
Additional information
Go to Settings -> System -> Repairs -> Click on 3 dots (...) -> System Information and get Version and Installation Type to below fields;

Home Assistant Installation Type (OS - Supvervised - Core):  Docker container
Home Assistant Core Version: core-2024.9.1
Eufy Security Add-on Version:
Eufy Security Integration Version: v8.0.3

Hardware Information;

Camera Model: T8210

Debug Logs from Home Assistant (https://github.com/fuatakgun/eufy_security/discussions/624) - See attached eufy.txt file.

Would you share your device with me in case further debugging required? (No):

eufy.txt

I'm seeing the same behavior in the solo cam S230. Both the battery percentage and the times that the cameras are charging via solar power are different in Home Assistant

I'm seeing the same behavior in the solo cam S230. Both the battery percentage and the times that the cameras are charging via solar power are different in Home Assistant

Hi
I have 3 2C cameras and a home base 2.
2 of my 2C are plugged to solar panels.
I am also observing this "non updating" behavior in HA while the eufy app was showing the proper information.
Actually, I found out that, in HA, the battery % level is updating only when the charging state is updating (Eufy app is getting real time data from the homebase with no issue).
It is obvious in HA if you look the Charging status & Battery Percentage data of a same camera in the same graph.

I am facing the same issue and I do not how to fix or the root cause of the issue, my observations;

it is not updated into add-on when battery level has been updated, add-on relies on push notifications and this is not received via push.
it could be updated via cloud pull but not sure.
in any case, integration is behaving as a middleware between add-on and home assistant, you should get consultation from bropat if this is somehow fixable.


users should be able to upload their own avatar image

@jmcmichael this is completed server side. Support for displaying them should be transparent and require no changes on your end. The edit profile form is the only thing that should need to change, it accepts a new parameter for the file upload now (profile_image).


build: update outdated dependencies

:tada: This PR is included in version 0.14.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Missing a .meta file for the mujoco.dll in the unity plugin

I'm using MuJoCo and Unity on Windows 11. However, when I imported the package via git in the Unity editor, it promoted that the mujoco.dll does not have a .meta file and is ignored.
After I create a .meta file for mujoco.dll manually, the plugin loads successfully.
So, I think it is better to add .meta files for the runtime libraries.

Or, it is better to create a meta file for the library while copying the library during the installation process.

How you describe it is one way to do it, although the copied files may disappear from the package folder if the project needs to reimport the git package. The way I usually handle this is to copy the mujoco DLL straight to my Project (somewhere in the Assets folder).
To better support git based installations, maybe the install instructions could be updated with this approach?
Alternatively, maybe including the dll and meta file in the package itself could be appropriate. Or is including a dll like that not good practice?

How you describe it is one way to do it, although the copied files may disappear from the package folder if the project needs to reimport the git package. The way I usually handle this is to copy the mujoco DLL straight to my Project (somewhere in the Assets folder).
To better support git based installations, maybe the install instructions could be updated with this approach?
Alternatively, maybe including the dll and meta file in the package itself could be appropriate. Or is including a dll like that not good practice?

Including a dll file in the repo doesn't seem to be a  very well practise, although it is convenient for users to import. Doing so will lead to the increment of the repo's size at every update, as the dll is a binary file.
As indicated in the , "On Unity version 2020.2 and later, the Package Manager will look for the native library file and copy it to the package directory when the package is imported." But the Package Manager will only copy the library file itself, not creating the .meta file at the same time. I think this will be the major problem.
P.S. I use Unity 2020.3.48f1c1. I'm not sure whether on higher version of Unity this issue will occur or not.
Therefor, the install instructions should be updated to indicate this.

I already open a pr to fix the problem.


Cannot inject two or more reducers

I want to inject two reducers inside a index.js and it complains. E.g.
`
import { injectReducer } from '../../store/reducers'
export default (store) => ({
path: 'homepage',
getComponent (nextState, cb) {
require.ensure([], (require) => {

  const Homepage = require('./containers/Homepage').default require('../../components/Homepage').default
  const reducer = require('./modules/session').default

  /*  Add the reducer to the store on key 'counter'  */
  injectReducer(store, { key: 'session', reducer })

  const qReducer = require('./modules/questionCardList').default

  /*  Add the reducer to the store on key 'counter'  */
  injectReducer(store, { key: 'questionCardList', qReducer })

  /*  Return getComponent   */
  cb(null, Homepage)

/* Webpack named bundle   */
}, 'session')

}
})
`
Browser error:
warning.js:14No reducer provided for key "questionCardList"

You need to insert reducer with key 'reducer'. So it should be 'injectReducer(store, { key: 'questionCardList', reducer: qReducer })'

Thanks!


fix(registry-pods): add everything toleration to registry pods

Adds an everything toleration to registry pods generated by OLM.
Addresses ALM-908
/hold
Waiting for confirmation from bug reporters.

/retest

/retest

/hold cancel

/retest

/retest

/retest

/retest

/test e2e-aws

/lgtm


Add document about getGJLevelScores211.php

s1: attempts - 8354
s7: randomSeed
s9: coins you got - 5819
I dont't know s2-s6 and s8

and s5, s8 is variable.

-? You ADD those numbers sometimes. I do have a list of those though, let me find it

s1 = attempts + 8354
s2 = jumps + 3991
s3 = seconds + 4085
s4 = 1482 * 2 + (jumps + 3991) * (percentage + 8354) + ((seconds + 4085) ** 2) - 50028039
s4 is 1482 if jumps, percentage and seconds are 0
random number (somewhere in range [1000, 10000])
s5 = unknown
s6 = random seed
s7 = attempts
s8 = coins + 5819
s9 = timely ID
s10 = chk

Not sure about s10, tbh.

Alright, I have adjusted the numbers. Would be cool if anyone figured out what s6 is, though it isn't even middle priority at this point.

s1 = attempts + 8354
s2 = jumps + 3991
s3 = seconds + 4085
s4 = 1482 * 2 + (jumps + 3991) * (percentage + 8354) + ((seconds + 4085) ** 2) - 50028039
s4 is 1482 if jumps, percentage and seconds are 0
s5 = random number (somewhere in range [1000, 10000])
s6 = unknown
s7 = random seed (rs)
s8 = attempts
s9 = coins + 5819
s10 = timely ID

s4 = 1482 * (hasPlayed + 1) + (jumps + 3991) * (percentage + 8354) + ((seconds + 4085) ** 2) - 50028039

Alright, I have adjusted the numbers. Would be cool if anyone figured out what s6 is, though it isn't even middle priority at this point.

s6 value like AA== but I don't know how this mean.


How to use ImportExportModelAdmin together with SortableAdminMixin from admin-sortable2

I tried to use ImportExportModelAdmin together with SortableAdminMixin from admin-sortable2, but I get the following error. Any idea how and if. these can work together?
join() argument must be str, bytes, or os.PathLike object, not 'list'
Request Method:	GET
Request URL:	http://xxxxx.de/admin/tenant_only/frage/
Django Version:	4.1.5
Exception Type:	TypeError
Exception Value:
join() argument must be str, bytes, or os.PathLike object, not 'list'
Exception Location<EMAIL_ADDRESS>line 152, in _check_arg_types
Raised during:	adminsortable2.admin.changelist_view

Thanks you in advance!

At first glance it looks like an error in adminsortable2, but can you post the full stack trace (along with the versions you are using)

Did you solve this?  Can we close?

sorry for not answering. In the stacktracke the error appears in a class of adminsortable2, so I opened an issue there. So I guess we can close here for now, unless you have an idea?

[Link}(https://github.com/jrief/django-admin-sortable2/issues/345)
Will close for now and will re-open if it looks like an import-export issue.

I think this is django-import-export issue.
I was able to make the sorting work together with import/export buttons by following code:
class MyAdmin(ImportExportMixin, SortableAdminMixin, admin.ModelAdmin):
     change_list_template = "admin/import_export/change_list.html"

The substantial part is the change_list_template which I think should be set explicitly in django-import-export and shouldn't be needed in the users code.
For the reverse order of the mixins ((SortableAdminMixin, ImportExportMixin, admin.ModelAdmin)) which should in theory also work I think is at fault the django-adminsortable2 which defines list as change_list_template.

We decided to document these clashes rather than try to fix:

I think this is django-import-export issue. I was able to make the sorting work together with import/export buttons by following code:
class MyAdmin(ImportExportMixin, SortableAdminMixin, admin.ModelAdmin):
     change_list_template = "admin/import_export/change_list.html"

The substantial part is the change_list_template which I think should be set explicitly in django-import-export and shouldn't be needed in the users code.
For the reverse order of the mixins ((SortableAdminMixin, ImportExportMixin, admin.ModelAdmin)) which should in theory also work I think is at fault the django-adminsortable2 which defines list as change_list_template.

I changed my code to this. I can now see the drag handler, but cannot use them as they don't work. Am I anything missing. Works when I only use the SortableAdminMixin.

You could try @PetrDlouhy patch and see if that works for you.  I decided not to merge into the main codebase, instead documented the workaround here.

Unfortunately this also didn't work. Still drag & drop is not working in combination with import/export mixin

Sorry to say I can't help further.  It looks like various 3rd party libraries don't work well together.  If you get it working or find a workaround, please post back here.

@matthewhegarty I think that ideal state of this issue is, that cooperation with admin-sortable2 works out of the box without any workarounds (maybe even independently on order of the mixins).
Although it would be difficult to determine which library is at fault or if there are changes need to be implemented in Django itself to make sorting out template overriding easier with mixins.
I would like to contribute to solve this issue somehow.
@micudaj I have identified another issue which causes that admin_sortable2_config is not set and the drag&drop doesn't work. The cause is clash of variable of the same name in both libraries: #1633
There is still needed to apply workaround after this change. The sorting drag&drop should work with following code:
class MyAdmin(ImportExportMixin, SortableAdminMixin, admin.ModelAdmin):
    change_list_template = "adminsortable2/change_list.html"

It also might be good to add super to the change_list.html template in case that some other library would override the object-tools block too:
{% block object-tools %}
  <ul class="object-tools">
    {% block object-tools-items %}
      {% if has_add_permission %}
        {{ block.super }}
      {% endif %}
    {% endblock %}
  </ul>
  {{ block.super }}
{% endblock %}

@matthewhegarty I think that ideal state of this issue is, that cooperation with admin-sortable2 works out of the box without any workarounds (maybe even independently on order of the mixins). Although it would be difficult to determine which library is at fault or if there are changes need to be implemented in Django itself to make sorting out template overriding easier with mixins.
I would like to contribute to solve this issue somehow.
@micudaj I have identified another issue which causes that admin_sortable2_config is not set and the drag&drop doesn't work. The cause is clash of variable of the same name in both libraries: #1633 There is still needed to apply workaround after this change. The sorting drag&drop should work with following code:
class MyAdmin(ImportExportMixin, SortableAdminMixin, admin.ModelAdmin):
    change_list_template = "adminsortable2/change_list.html"

Hey PetrDlouhy,
With your fixes drag & drop works. Thank you! But now I have the import export buttons in the top right twice. It is more of a cosmetic topic, but maybe this can easily be avoided.

Never mind. Was an issue on my side with a change I tried before.


Evaluate if we should use Remix for v2.0

Context: A production-grade React framework would eliminate the common problems faced when not using a framework. I have narrowed it down to Remix which seems suitable for our purposes.
What is Remix?

“Remix is a full-stack React framework with nested routing. It lets you break your app into nested parts that can load data in parallel and refresh in response to the user actions.”

Can I use React without a framework?

“You can use React without a framework, however we’ve found that most apps and sites eventually build solutions to common problems such as code-splitting, routing, data fetching, and generating HTML. These problems are common to all UI libraries, not just React.”

Investigate Remix
Context: A production-grade React framework would eliminate the common problems faced when not using a framework. I have narrowed it down to Remix which seems suitable for our purposes.
What is Remix?
“Remix is a full-stack React framework with nested routing. It lets you break your app into nested parts that can load data in parallel and refresh in response to the user actions.” - React Documentation
Can I use React without a framework?
“You can use React without a framework, however we’ve found that most apps and sites eventually build solutions to common problems such as code-splitting, routing, data fetching, and generating HTML. These problems are common to all UI libraries, not just React.” - React Documentation
Is Remix easy to implement and maintain?
Remix Framework is designed with maintainability and implementation ease in mind, offering several features that contribute to these goals:

Unified Codebase: Remix promotes a unified codebase for handling both client-side and server-side logic. This simplifies development, testing, and maintenance efforts by reducing the need to manage separate codebases or frameworks for different parts of the application.

Convention over Configuration: Remix follows a "convention over configuration" approach, which means that it provides sensible defaults and conventions that developers can rely on. This reduces the need for manual configuration and boilerplate code, making it easier to get started with building applications.

Developer Tools: Remix offers a suite of developer tools, including a built-in development server, hot reloading, and debugging utilities. These tools streamline the development process and provide immediate feedback, allowing developers to iterate quickly and troubleshoot issues effectively.

Robust Routing: Remix provides a powerful routing system that enables developers to define routes, nested routes, and route parameters with ease. This allows for clear and intuitive navigation within the application, making it easier to manage complex page structures and user flows.

Built-in Data Loading: Remix simplifies data loading by offering built-in strategies for fetching data on the server or client side. This makes it easier to manage data dependencies and ensure that pages are rendered with the necessary data, improving performance and user experience.

Extensibility: Remix's plugin system allows developers to extend and customize its functionality to suit their specific needs. This enables the integration of third-party libraries, tools, and services, as well as the creation of reusable components and utilities, enhancing flexibility and maintainability.

Overall, Remix Framework emphasis on convention, developer tools, robust routing, data loading, and extensibility contributes to a development experience that is both straightforward and maintainable in the long run.
What value does it add?
Remix adds a lot of value as a framework. Remix Framework offers several key values that make it stand out as a powerful tool for building web applications:

Developer Experience (DX): Remix prioritizes developer experience by providing a modern and intuitive development environment. It offers features like built-in routing, server-side rendering, data loading strategies, and a powerful plugin system, all aimed at making the development process more efficient and enjoyable.

Server-Side Rendering (SSR): Remix excels in server-side rendering, which enables fast initial page loads, improved SEO, and better accessibility. By rendering pages on the server and sending fully-formed HTML to the client, Remix ensures that users receive content quickly and consistently across devices and network conditions.

Data Loading and Prefetching: Remix simplifies data loading by offering built-in strategies for fetching data on the server or client side. It provides tools for prefetching data before navigating to a new page, optimizing performance and reducing latency. Additionally, Remix's data loading features integrate seamlessly with its routing system, enabling efficient data fetching based on page transitions.

Unified API: Remix promotes a unified API for handling both client-side and server-side logic, reducing the cognitive overhead associated with managing separate codebases or frameworks for different parts of the application. This unified approach streamlines development, testing, and maintenance efforts, leading to more maintainable and scalable codebases.

Plugin Ecosystem: Remix's plugin system allows developers to extend and customize its functionality to suit their specific needs. This extensibility enables the integration of third-party libraries, tools, and services, as well as the creation of reusable components and utilities, fostering a vibrant ecosystem around the framework.

Performance and Scalability: With its focus on server-side rendering, efficient data loading, and optimized client-side hydration, Remix delivers high performance and scalability out of the box. By leveraging techniques like code splitting, caching, and resource prioritization, Remix ensures that applications remain responsive and resilient under varying load conditions.

Overall, Remix Framework adds value by offering a comprehensive set of features, best practices, and development tools that empower developers to build fast, robust, and maintainable web applications with ease. Its emphasis on developer experience, server-side rendering, data loading, and extensibility makes it a compelling choice for modern web development projects.
How does Remix work with backend development?
Here's how Remix works with backend development:

Frontend Development: Remix provides a robust framework for building modern web applications with a strong emphasis on React components and client-side interactivity. It allows you to create reusable UI components and manage application state effectively.

Backend Routing: Remix includes a powerful routing system that enables you to define routes for both frontend and backend components of your application. This means you can define routes that serve static content or dynamically generate responses from the server.

Server-Side Rendering (SSR): Remix supports server-side rendering, which allows you to pre-render React components on the server and send the fully-rendered HTML to the client. This is beneficial for performance, SEO, and providing a consistent experience across different devices and browsers.

Data Loading: Remix provides utilities for loading data on the server before rendering the page. This is useful for fetching initial data from APIs or databases, ensuring that the page is fully populated with content before it is sent to the client.

Backend Logic: While Remix doesn't include a full-fledged backend framework like Express or Koa, it allows you to define backend logic within your routes using JavaScript or TypeScript. This includes handling form submissions, processing API requests, interacting with databases, and any other server-side operations your application requires.

Middleware: Remix supports middleware, which allows you to intercept and modify requests and responses before they are processed by your route handlers. This is useful for implementing common functionality such as authentication, logging, error handling, and more.

API Routes: Remix allows you to define API routes separately from your regular routes. These API routes can handle incoming requests and return JSON responses, making it easy to build RESTful APIs or integrate with external services.

Authentication and Authorization: Remix provides features for implementing authentication and authorization in your application, including built-in support for OAuth providers and JWT tokens. This allows you to secure your backend routes and API endpoints based on user roles and permissions.

Overall, Remix combines frontend and backend development into a cohesive framework, allowing you to build full-stack web applications with a focus on performance, developer productivity, and maintainability.

I will be done with the ADR before Monday's standup.


chore(master): Release 0.14.3

:robot: I have created a release beep boop
aztec-packages: 0.14.3
0.14.3 (2023-11-07)
Bug Fixes

Fix block constraint key divergence bug. (#3256) (1c71a0c)

barretenberg.js: 0.14.3
0.14.3 (2023-11-07)
Bug Fixes

Fix block constraint key divergence bug. (#3256) (1c71a0c)

barretenberg: 0.14.3
0.14.3 (2023-11-07)
Bug Fixes

Fix block constraint key divergence bug. (#3256) (1c71a0c)

This PR was generated with Release Please. See documentation.

Benchmark results
Metrics with a significant change:

note_history_trial_decrypting_time_in_ms (10): 194 (+38%)
note_trial_decrypting_time_in_ms (32): 64.0 (-35%)
note_trial_decrypting_time_in_ms (128): 193 (+41%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
Values are compared against data from master at commit 1c71a0cf and shown if the difference exceeds 1%.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
128 txs

l1_rollup_calldata_size_in_bytes
45,444
179,588
716,132

l1_rollup_calldata_gas
222,900
868,184
3,449,888

l1_rollup_execution_gas
841,987
3,595,292
22,205,257

l2_block_processing_time_in_ms
1,967 (-1%)
7,652 (+1%)
29,776

note_successful_decrypting_time_in_ms
292
856 (-4%)
3,124 (-1%)

note_trial_decrypting_time_in_ms
93.0
:warning: 64.0 (-35%)
:warning: 193 (+41%)

l2_block_building_time_in_ms
13,257 (+1%)
52,855
209,813

l2_block_rollup_simulation_time_in_ms
11,921 (+1%)
47,530
188,712 (+1%)

l2_block_public_tx_process_time_in_ms
1,296 (+1%)
5,186
20,610 (-1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
21,537
41,808 (-1%)

note_history_successful_decrypting_time_in_ms
2,005
3,910

note_history_trial_decrypting_time_in_ms
120
:warning: 194 (+38%)

node_database_size_in_bytes
1,628,837
1,096,242

pxe_database_size_in_bytes
29,748
59,307

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
772
61,697
18,905

private-kernel-ordering
123
24,297
8,153

base-rollup
1,768
656,311
814

root-rollup
83.7 (+11%)
4,072
1,097

private-kernel-inner
787
81,568
18,905

public-kernel-private-input
41.5
41,519
18,841

public-kernel-non-first-iteration
26.2 (-1%)
41,497
18,841

merge-rollup
0.935 (-4%)
2,592
873

Miscellaneous
Transaction sizes based on how many contracts are deployed in the tx.

Metric
0 deployed contracts
1 deployed contracts

tx_size_in_bytes
8,787
27,547

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/aztec-packages-v0.15.0 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg.js-v0.15.0 :sunflower:

:robot: Release is at https://github.com/AztecProtocol/aztec-packages/releases/tag/barretenberg-v0.15.0 :sunflower:


NTR: ASC-1 complex

Dear editors,
this paper PMID:12077347 describes a protein complex composed of 4 proteins in namely TRIP4, ASCC1, ASCC2 and ASCC3 and has been described by other publications since then (PubMed=26924529). Would it be possible to create a term for that complex?
Thanks,
Lionel

Hi Lionel /Go editors
I'm interested in this  complex and the eventual process annotations because these 4 proteins are conserved in pombe and currently in our 'unknowns' list.
As this complex is clearly conserved  from human to yeast, can you keep the definition suitably broad (maybe the function, but not mention the regulated substrates).
Cheers
Val

Hi Lionel,
Presumably name should be:
Activating Signal Cointegrator 1 Complex
Can you suggest a definition, referencing core biochemical/cell biological function?
Cheers,
David
(BTW - I may not get around to adding this until the week after next.  On holiday next week.)

Hi David,
I am not sure there are clear evidences for the function of the complex as a whole but the complex has been described in at least 3 papers in mammals. Maybe Val could point to other reports in pombe. Here is a definition you might want to improve:
A nuclear protein complex that may function in the regulation of transcription. In mammals it is composed of ASCC1, ASCC2, ASCC3 and TRIP4.
Hope it helps,
Thanks.
Lionel

I agree, there isn't much known (these 4 proteins are in my 'unknown process list')....I have been looking at them occasionally as part of a 'function prediction' project as they clearly interact, and is complex appears to be conserved from pombe to human. They don't have any strong phenotypes and they have vague connections to all sorts of processes....Nothing strong enough to  annotate.
I think it is worth creating the complex even though we don't know the exact role (I know we don't usually). I'm sure there will be papers on this complex soon, and I'll revise the def.
I think Lionel's def will suffice as a placeholder.

Hi David,
any news about this term request I posted in May?
Thanks,
Lionel

Hi @lbreuza,  On holiday right now.  Back Wed.  I'll put this on my list of urgent requests to complete this week.  Cheers,
David

@ValWood: Can you let me know the yeast components?

the complex has been described in at least 3 papers in mammals.

Do you have the other refs handy?  Do they cover > 1 species?

This is a job I finished in May and unfortunately do not remember much about the details. I had mentioned at least 2 papers in my initial request. As far as I remember, the complex was described in human and mouse.
Sorry.

It is not yet studied in yeast but I'm 99% sure that its a conserved  complex as the subunits are conserved 1:1. I think its safe to assume that the complex is conserved across eukaryotes and has a  conserved role.
I will use this term with ISO to the human orthologs, but we don't have any references.

Might still be worth listing the yeast components.

The pombe components would be

human thyroid receptor interacting protein homolog, transcription coactivator (predicted)
human ASCC1 ortholog
CUE domain protein Cue3, human ASCC2 ortholog (predicted)
ATP-dependent RNA helicase Slh1, human ASCC3 ortholog (predicted)
(all are currently in out 'unknown' list http://www.pombase.org/status/priority-unstudied-genes, I would feel safe to ISO the complex, but not the biological processes.... human ASCC3 is a helicase so it is likely that the  real cellular role is somewhat obscured at present. I don't think its a problem to go with Lionel's original suggestion and we revise as more functional information becomes available.

Val

How's this:

Sounds good, can be refined when we know more.
Val

Do you have a GO ID, I can add my ISS's now...

Hi,
this sounds good. 2 minor suggestions:
TRIP4 is the official gene name therefore I would suggest to write TRIP4 (ASC1)
and acts transcriptional coactivator-> and acts AS A transcriptional coactivator
Thanks,
Lionel

Done.  ID: GO:0099053

Hi Dav,
Activating Signal Cointegrator 1 Complex
->
Activating Signal Cointegrator 1 complex  (I used this case)
Val


Remember menubar position

I have sorted every application on the menubar, but ControlPlane does not save its position.

It does not do that indeed. Verrrrrrry irritating.


Presumable unnecessary migration on identity column leads to exception

I reworked a relationship between two tables from a one-to-many relation to a one-to-one relationship. And got the following migration statement in Up and Down functions:
protected override void Up(MigrationBuilder migrationBuilder)
{
   migrationBuilder.AlterColumn<int>(
	name: "OrganizationalUnitId",
	table: "OrganizationalUnits",
	nullable: false,
	oldClrType: typeof(int))
	.OldAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
...
}

protected override void Down(MigrationBuilder migrationBuilder)
{
   migrationBuilder.AlterColumn<int>(
	name: "OrganizationalUnitId",
	table: "OrganizationalUnits",
	nullable: false,
	oldClrType: typeof(int))
	.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
...
}

Only difference in the two statements are functions OldAnnotation and Annotation. Are these two migration statements necessary and if yes why?
This would lead to the following exception when applying the migration to the database:
System.InvalidOperationException: To change the IDENTITY property of a column, the column needs to be dropped and recreated.
   bei Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(AlterColumnOperation operation, IModel model, MigrationCommandListBuilder builder)
   bei Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.<>c.<.cctor>b__63_4(MigrationsSqlGenerator g, MigrationOperation o, IModel m, MigrationCommandListBuilder b)
   bei Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
   bei Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(MigrationOperation operation, IModel model, MigrationCommandListBuilder builder)
   bei Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(IReadOnlyList`1 operations, IModel model)
   bei Microsoft.EntityFrameworkCore.Migrations.SqlServerMigrationsSqlGenerator.Generate(IReadOnlyList`1 operations, IModel model)
   bei Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateUpSql(Migration migration)
   bei Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.<>c__DisplayClass13_2.<GetMigrationCommandLists>b__2()
   bei Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   bei Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   bei ToSec.Presentation.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in C:\abc\src\def\Startup.cs:Zeile 211.

Here the configuration of the one-to-many relationship (before doing the changes):
public class OrganizationalUnit
{
	public int OrganizationalUnitId { get; set; }
        public ICollection<GraphNode> Nodes { get; set; }
	...
}

public class GraphNode
{
	public int GraphNodeId { get; set; }

	public int? OrganizationalUnitId { get; set; }
	public virtual OrganizationalUnit OrganizationalUnit { get; set; }
	...
}

Here the changes made to get a one-to-one relationship instead of the one-to-many relationship:
public class OrganizationalUnit
{
	public int OrganizationalUnitId { get; set; }
        public GraphNode Node { get; set; }
	...
}

And in ApplicationDbContext.cs:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   ...
   modelBuilder.Entity<GraphNode>().HasOne(p => p.OrganizationalUnit).WithOne(b => b.Node).HasForeignKey<OrganizationalUnit>(p => p.OrganizationalUnitId).HasConstraintName("FK_GraphNodes_OrganizationalUnits_OrganizationalUnitId");
   ...
}

Further technical details
EF Core version: 2.0.2
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Win10
IDE: Visual Studio 2017 15.6.3

I'm sorry, my Fluent API statement was wrong. Everything works with the correct statement:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   ...
   modelBuilder.Entity<OrganizationalUnit>().HasOne(a => a.Node).WithOne(b => b.OrganizationalUnit).HasForeignKey<GraphNode>(b => b.OrganizationalUnitId);
   ...
}