MacOS connection error after following the steps provided

It appears there may be an issue with the certificates after following the above guide, creating internal certs using PS.
MacOS console logs "neagent: [eaptls_plugin.c:292] eaptls_verify_server(): server certificate not trusted status 6 0"
I have entered keychain, moved the internal root cert to System and marked as Trusted and I also went as far as marking the clientcert (with key) as trusted to no avail.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 59e72010-dab4-54d9-1409-c95b0ce60824
Version Independent ID: 0da5450c-6181-1c27-93c0-b0c698d2d598
Content: Connect a computer to an Azure virtual network using Point-to-Site and native Azure certificate authentication: Azure Portal
Content Source: articles/vpn-gateway/vpn-gateway-howto-point-to-site-resource-manager-portal.md
Service: vpn-gateway
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

I have established that the Local ID value must reflect the Subject Alternate Name and not the Certificate Name.

@COLTELLAIT
Thanks for your feedback! We will investigate and update as appropriate.

@COLTELLAIT A couple things:
Can you verify the version of Mac OS you are using?
Also, in the Generate a client certificate
 section, did you continue in the same Powershell session to create the client certificate as was done to create the root certificate? You can try recreating the client certificate following example 2.
I look forward to your feedback.

@COLTELLAIT I have walked through the documentation for creating a VPN Gateway and installing the VPN client for a Windows 10 host. I had no issues. This does not mean that the MacOS instructions are correct but, the content owner has created some very reliable documentation and the error you are seeing indicates an issue with the root certificate. Is it possible for you to redo the root + client certificate steps and ensure you are using the 'generic' instance of the VPN client that is made available after configuring the public key (for the root certificate) for P2S.
Create a self-signed root certificate
VPN client configuration on Mac (OS X)

Apologies for any confusion. I had changed the certificate name but not the subject alternate name and as a result couldn't connect. After using the subject alternate name in the Local ID field of the MacOS vpn client, i was able to connect. I just wanted to highlight this for others who may also choose to rename their self generated client certificates.

I'm having issues with macOS.  "Client Authentication Failed". I have verified that the Local ID == Subject shown in MMC for the client cert.  The server address and remote ID match vpnsettings.xml.
I've used Keychain Access to set "always trust" on both the client and client root certs.
I see the vpnserver.cer (DigiCert in keychain as well under login and System Roots.
Windows 10 using SS2P can connect with the same cert (should rule out the root cert).
I swear I have been through this and https://docs.microsoft.com/en-us/azure/vpn-gateway/vpn-gateway-troubleshoot-point-to-site-osx-ikev2 about 50 times.

I am no console wizard, but I do see:

DH did not match
authentication payload is missing
Authentication method did not match
Failed to process IKE Auth packet (connect)

I am certain that my SKU == standard and that both IKEv2 and SS2P are checked.


Implement endpoint for getting signed relayed data

https://api3dao.atlassian.net/browse/AN-352
Docs draft: https://github.com/api3dao/api3-docs/pull/626

Closing in favor of https://github.com/api3dao/airnode/pull/843


Add subject archive for non-active subjects

Instead of deleting the data save it to another location where it's not loaded to the main screen

Fixed in 0d61d99

Fixed in 0d61d99


Add pagination to homepage transactions

Enable user to check older transactions with simple pagination
Closes #60
https://user-images.githubusercontent.com/8636507/167968801-8156197e-b49f-4351-b53f-31288f2577dd.mov
https://user-images.githubusercontent.com/8636507/167968810-fc451a44-e295-4fa1-a1c0-8ca56ec3628d.mov

https://user-images.githubusercontent.com/8636507/167968989-bad28b25-9bb0-4e6e-b506-d13ddc8c5c57.mov
https://user-images.githubusercontent.com/8636507/167969017-4107415f-073b-42c6-b4a2-dd5a45ef8ce1.mov

We have a issue with paginations when arriving to the last it will be fixed by: https://github.com/FuelLabs/fuel-core/pull/323/files


Feature request: Emitting EOF

I'd like to propose emitting an EOF token when the end of the input is reached. This is useful when using moo with nearley (or any other parser generator that does not natively support EOF tokens). This way, the parser can generate an error when the EOF token is unexpected. This will also add information about where the EOF happened, providing a more useful error message.
It could be implemented with the following API:
moo.compile({
  number:  /(0|[1-9][0-9]*)/,
  end_of_input: moo.eof
});

// when using states, each state needs a separate eof
moo.state({
  main: {
    string:  /"((?:\\["\\]|[^\n"\\])*)"/,
    lparen:  {match: '(', push: 'parens'},
    eof: moo.eof,
  },
  parens: {
    number:  /(0|[1-9][0-9]*)/,
    rparen: {match: ')', pop: 1},
    eof_in_parens: {match: moo.eof, value: "a string"} // default value is "<eof>" but it can be changed
  }
});

EOF would be emitted once and only once when the end of the input is reached. Thereafter, calling
next will return undefined as before. EOF will not be emitted when there is no moo.eof  present. It is invalid to have multiple moo.eof's per group.

const itt = require('itt')
const moo = require('moo')

const lexer = moo.compile({
  id: /\w+/,
  sp: {match: /\s+/, lineBreaks: true},
})

lexer.reset('foo bar')
for tok in itt(lexer).push({type: 'eof'}) {
  console.log(tok)
}

// { type: 'id', … }
// { type: 'sp', … }
// { type: 'id', … }
// { type: 'eof' }

Thanks for the suggestion! I think as @nathan points out this is pretty easy to add yourself in a stage on top of Moo, so we don't want to include it in Moo core. Sorry! :-)

Thanks, @tjvr and @nathan. Appending EOF to the token stream is possible solution, but you would no longer have access to moo's API, which is an important aspect of this proposal.
nearley can use moo as lexer with just one statement in its grammar:
@lexer your_moo_instance

This instance has to comply with nearley's Custom lexers interface, which moo does. You would have to replicate moo's API with the suggested solution above. This is why I thought emitting EOFs is an elegant solution. Thank you for considering, though!

@tjvr this one might be useful/trivial enough to include for nearley, especially since there's no runtime cost when tokenizing (just a check inside the EOF if).

just a check inside the EOF if

You're right, this would be cheap (although you'd also need to keep track of whether you'd already emitted the EOF token).
But I don't see how this benefits Nearley specifically. Using EOF tokens inside a CFG is fairly unusual IMHO; it's usually not what you want (unlike in a PEG where it might make more sense).

Using EOF tokens inside a CFG is fairly unusual IMHO

I've never used nearley and assumed it was reasonable, but it might not be. What does nearley do with next returning undefined / a parse that doesn't consume all of the input?

In nearly, next() returning undefined indicates EOF, which is really just the end of the chunk passed to feed(). When you then call finish(), you'll get zero results.

Ah, then this would probably be superfluous.


Pagination

Can you please send me code how I can implement pagination at the time of get following, follower.
I have try but not working.
handler.users.followed(byUser: .me, with: .init(maxPagesToLoad: .max), updateHandler: nil, completionHandler: { result, _ in
print("result followed: (result)")
})
what I can user instead of max
Thanks

How I can get 85k record from handler.users.following api?. Can you please help me.
Thanks


Tester segfault due to libgfortran mixup

Hello everybody,
sorry for the initially empty bug report. Anyway.
I am observing tester failures while using a self-built gcc/gfortran 9.2 on top of Centos 7. These failures are the result of the testers being linked against the systems /lib64/libgfortran.so.3 instead of the compilers required libgfortran.so.5.
The normal openblas (0.3.7) built process compiles for example sblat1 with
# gfortran -g -Wall -frecursive -fno-optimize-sibling-calls -m64 -fopenmp -mavx2 -g  -o sblat1 sblat1.o ../libopenblas_omp_haswellp-r0.3.7.a -lm -lpthread -lgfortran -lm -lpthread -lgfortran -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..  -lgomp -lpthread -lc
# ldd ./sblat1
        linux-vdso.so.1 =>  (0x00007ffd57d16000)
        libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00007f6bb3486000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6bb3184000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6bb2f68000)
        libgomp.so.1 => /cluster/comp/gcc/9.2.0/lib64/libgomp.so.1 (0x00007f6bb2d33000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6bb2966000)
        libgcc_s.so.1 => /cluster/comp/gcc/9.2.0/lib64/libgcc_s.so.1 (0x00007f6bb274e000)
        libquadmath.so.0 => /cluster/comp/gcc/9.2.0/lib64/libquadmath.so.0 (0x00007f6bb2508000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6bb37a8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6bb2304000)
# ./sblat1

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7F0D3F69D697
#1  0x7F0D3F69DCDE
#2  0x7F0D3EB9A27F
#3  0x7F0D3F75C4C0
#4  0x7F0D3F769E27
#5  0x403DEA in MAIN__ at sblat1.f:63
Segmentation fault

EDIT: Copied initially wrong ldd output, now hopefully the correct one !
Now, if I prune library path arguments passed to the compiler and compile with
gfortran -g -Wall -frecursive -fno-optimize-sibling-calls -m64 -fopenmp -mavx2 -g  -o sblat1 sblat1.o ../libopenblas_omp_haswellp-r0.3.7.a -lm -lpthread -lgfortran -lm -lpthread -lgfortran   -lgomp -lpthread -lc
# ldd ./sblat1
        linux-vdso.so.1 =>  (0x00007ffed6dc2000)
        libgfortran.so.5 => /cluster/comp/gcc/9.2.0/lib64/libgfortran.so.5 (0x00007f1a4351a000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f1a43218000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1a42ffc000)
        libgomp.so.1 => /cluster/comp/gcc/9.2.0/lib64/libgomp.so.1 (0x00007f1a42dc7000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1a429fa000)
        libgcc_s.so.1 => /cluster/comp/gcc/9.2.0/lib64/libgcc_s.so.1 (0x00007f1a427e2000)
        libquadmath.so.0 => /cluster/comp/gcc/9.2.0/lib64/libquadmath.so.0 (0x00007f1a4259c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1a439a8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f1a42398000)
# ./sblat1|head
 Real BLAS Test Program Results

 Test of subprogram number  1             SDOT
                                    ----- PASS -----

this now links the correct libgfortran.5.so from the compiler.
This leads to the question if the original compiler call should contain the /usr/lib/gcc/x86_64-redhat-linux/4.8.5 etc. library paths which appear to be problematic ? Also, is there a way I could influence this from Makefile.rules, i.e. without changing lower level files ?
Best Regards
Christof

If you have several compiler versions installed, you should set up your PATH and LD_LIBRARY_PATH to point to the desired one, and/or use CC and FC to override what gets detected by the build system (something like CC=/cluster/comp/gcc/9.2.0/bin/gcc and likewise for FC/gfortran). Your first example looks like a combination of a 9.2.0 gcc and a 4.8.5 gfortran, which is guaranteed to end in tears.

Hello,
sure ! We have a modules environment set up on the cluster, see below, but may be we are actually missing something there. To me currently the problem instead appears to be that the openblas build system passes the for the fortran testers superfluous (?)
CEXTRALIB=-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..  -lgomp -lpthread -lc

to the gfortran compiler.
Not changing anything else (e.g. LD_LIBRARY_PATH as set in the module, see below) but just removing the  -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../..  from the gfortran call links the right libgfortran.so.5 instead of the libgfortran.so.3 from the system. I assume that libgfortran.so.3 is only included because it can be discovered after  -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64 is set:
# ls /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libgfor*
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libgfortran.so.3
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libgfortran.so.3.0.0

I should have added in the initial post that this is a cluster using a proper lmod environment system. However, it might be that additional settings are required. The current module is this:
proc ModulesHelp { } {
   puts stderr "\tgcc 9.2.0; compiled by ckoe"
}

family "compiler"

module-whatis   "gcc 9.2.0; compiled by ckoe"

set             root              /cluster/comp/gcc/9.2.0/
prepend-path     PATH              $root/bin
prepend-path     MANPATH           $root/share/man
prepend-path     LD_LIBRARY_PATH   $root/lib
prepend-path     LD_LIBRARY_PATH   $root/lib64
prepend-path     INCLUDE           $root/include

prepend-path MODULEPATH /cluster/modulefiles/comp/gcc-9

and exactly this module is loaded.
Best regards
Christof

In addition in the environment with loaded module I can demonstrate that the setup is not obviously broken:
# echo $PATH
/cluster/comp/gcc/9.2.0/bin:/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/maui/sbin:/usr/local/maui/bin:/root/bin
# echo $LD_LIBRARY_PATH
/cluster/comp/gcc/9.2.0/lib64:/cluster/comp/gcc/9.2.0/lib
# echo $INCLUDE
/cluster/comp/gcc/9.2.0/include
# gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/cluster/comp/gcc/9.2.0/libexec/gcc/x86_64-pc-linux-gnu/9.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib --prefix=/cluster/comp/gcc/9.2.0
Thread model: posix
gcc version 9.2.0 (GCC)
# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/cluster/comp/gcc/9.2.0/libexec/gcc/x86_64-pc-linux-gnu/9.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib --prefix=/cluster/comp/gcc/9.2.0
Thread model: posix
gcc version 9.2.0 (GCC)

A trivial test of the compiler works
# cat peule.f90
program peule
  write(*,*) 'peule'
end
[root@login tmp]# gfortran peule.f90
[root@login tmp]# ldd ./a.out
        linux-vdso.so.1 =>  (0x00007fffc727c000)
        libgfortran.so.5 => /cluster/comp/gcc/9.2.0/lib64/libgfortran.so.5 (0x00007f0adb4a1000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f0adb19f000)
        libgcc_s.so.1 => /cluster/comp/gcc/9.2.0/lib64/libgcc_s.so.1 (0x00007f0adaf87000)
        libquadmath.so.0 => /cluster/comp/gcc/9.2.0/lib64/libquadmath.so.0 (0x00007f0adad41000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f0ada974000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0adb92f000)
[root@login tmp]# ./a.out
 peule

CEXTRALIB is deduced from the output of a test compile (see the c_check perl script around line 270, where it executes "cc -v ctest2.o -o ctest2) so something in your system setup seems to still point to the "old" libraries (and has them take precedence over the newer ones).

Aha !  I assume cc is used for portability ? I will have to figure out how to best deal with this.
The Makefile.rules comment appears to suggest gcc is used throughout to me,
# C compiler including binary type(32bit / 64bit). Default is gcc.
# Don't use Intel Compiler or PGI, it won't generate right codes as I expect.
# CC = gcc

From it I also assume I cannot force the usage of gcc by uncommenting this ? How does it deal with, say, a intel or sun compiler ?
Thank you very much for  your help !
# cc -v
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

"cc" seems to be the gmake default nowadays, setting CC=gcc or whatever overrides it.

"cc" seems to be the gmake default nowadays, setting CC=gcc or whatever overrides it.

Thanks, I will try that ! I am not sure that the obvious dirty alternative of symlinking for each compiler cc  to the right gcc in its install directory is a good idea, as you write something else might assume  that cc must always point to the base systems C compiler. And I have a vague recollection that was one (of many ?) conventions a long time ago, at least on solaris or OSF1.
We had the same library mixup with gcc 6 and gcc 7 compilers. However, their libgfortran.so's are apparently compatible with the systems libgfortran.3.so, so I never suspected something was amiss although the openblas build process of course clearly reports cc in its output. Mea culpa !
Again, thank you very much for your help !
I will probably for each compiler symlink cc to gcc  and hope nothing assumes that cc always has to be the base systems C compiler. I have a vague recollection that was (one of many ?) conventions a long time ago.
Thank you very much again !


Spelling

"alloted" changed to "allotted" in line number 15

Hi. This is an end-of-project report written by one of our Google Summer of Code students. As such, we do not typically accept contributions to this.

Hi. This is an end-of-project report written by one of our Google Summer of Code students. As such, we do not typically accept contributions to this.


A value of type 'FormBuilderFieldOption' can't be assigned to a variable of type 'FormBuilderChipOption'.

The following is the error
Error: A value of type 'FormBuilderFieldOption' can't be assigned to a variable of type 'FormBuilderChipOption'.
- 'FormBuilderFieldOption' is from 'package:flutter_form_builder/src/form_builder_field_option.dart' ('../programs/flutter_3_0_4/.pub-cache/hosted/pub.dartlang.org/flutter_form_builder-7.4.0/lib/src/form_builder_field_option.dart').
- 'FormBuilderChipOption' is from 'package:flutter_form_builder/src/options/form_builder_chip_option.dart' ('../programs/flutter_3_0_4/.pub-cache/hosted/pub.dartlang.org/flutter_form_builder-7.4.0/lib/src/options/form_builder_chip_option.dart').
FormBuilderFieldOption(value: '5', child: Text('Excelent')),
This happens on all the FormBuilderFieldOption inside the FormBuilderChipOption options
The following is the code I'm using
FormBuilderChoiceChip _choiceChipRateService() {
return FormBuilderChoiceChip(
name: 'rate',
alignment: WrapAlignment.spaceEvenly,
validator:
FormBuilderValidators.required(errorText: "Please select one"),
selectedColor: Color.fromARGB(255, 147, 209, 235),
decoration: InputDecoration(
labelText: 'Select how was the service',
labelStyle: TextStyle(
color: Color.fromARGB(255, 25, 101, 108),
),
border: InputBorder.none,
),
options: [
FormBuilderFieldOption(value: '1', child: Text('Very bad')),
FormBuilderFieldOption(
value: '2', child: Text('Bad')),
FormBuilderFieldOption(value: '3', child: Text('Regular')),
FormBuilderFieldOption(value: '4', child: Text('Good')),
FormBuilderFieldOption(value: '5', child: Text('Very good')),
FormBuilderFieldOption(value: '6', child: Text('Excelent')),
],
);
}
Please help on how to fix this

This happens when building for ios

Please complete the issue template to can help you
Environment
Package version:

Flutter doctor

Code sample

Description
Expected behavior:
Current behavior:
Steps to reproduce

This
Than that
Then

Images
Stacktrace/Logcat

That issue was solved, I have another issue:
../programs/flutter_3_0_4/.pub-cache/hosted/pub.dartlang.org/flutter_chips_input-1.10.0/lib/src/chips_input.dart:87:7: Error: The non-abstract class 'ChipsInputState' is missing implementations for these members:
 - TextInputClient.insertTextPlaceholder
 - TextInputClient.removeTextPlaceholder
 - TextInputClient.showToolbar
Try to either
 - provide an implementation,
 - inherit an implementation from a superclass or mixin,
 - mark the class as abstract, or
 - provide a 'noSuchMethod' implementation.

class ChipsInputState<T> extends State<ChipsInput<T>>
      ^^^^^^^^^^^^^^^
../programs/flutter_3_0_4/packages/flutter/lib/src/services/text_input.dart:1124:8: Context: 'TextInputClient.insertTextPlaceholder' is defined here.
  void insertTextPlaceholder(Size size) {}
       ^^^^^^^^^^^^^^^^^^^^^
../programs/flutter_3_0_4/packages/flutter/lib/src/services/text_input.dart:1127:8: Context: 'TextInputClient.removeTextPlaceholder' is defined here.
  void removeTextPlaceholder() {}
       ^^^^^^^^^^^^^^^^^^^^^
../programs/flutter_3_0_4/packages/flutter/lib/src/services/text_input.dart:1116:8: Context: 'TextInputClient.showToolbar' is defined here.
  void showToolbar() {}
       ^^^^^^^^^^^

Please open a new issue with details in template


Various updates

This PR updates the following packages:

mesa, update from version 21.1.4 to 21.2.5;
cmake, update from version 3.20.5 to 3.22.0;
curl, update from version 7.77.0 to 7.80.0;
freetype, update from version 2.10.2 to 2.11.0;
nano, update from version 5.8 to 5.9;
libuv, update from version 1.41.1 to 1.42.0;
libxfont2, update from version 2.0.4 to 2.0.5;
libxft, update from version 2.3.3 to 2.3.4;
libjpeg-turbo, update from version 2.1.0 to 2.1.2;
pango, update from version 1.48.1 to 1.48.10;
libepoxy, update from version 1.5.8 to 1.5.9;
harfbuzz, update from version 2.8.2 to 3.1.1;
glib, update from version 2.68.3 to 2.70.1.

Furthermore, this PR fixes the following CVE's:

TBA.

One notoriously broken port finally got fixed, glad to see pango on this list. At the moment I haven't yet investigated the icu issues reported in #123, but I'm sure I'll run into those again soon enough.
Blocked on managarm/mlibc#336 (merged) and managarm/mlibc#337 (still open)

I don't like that this patches out fsync. If fsync failures are an issue, why don't we just make fsync return success in all cases in mlibc (+ print a warning)?

Hmm yeah I agree. I too would like to drop this patch. Luckily, managarm/mlibc#307 does this for me, and is only pending the pthread_cond_timedwait() fixes (I have the rest locally addressed, just need to fix up and force push). I’ll post some more info regarding pthread somewhere today in discord as qookie requested, block this PR on that one, and drop the offending patch from nano.


SSLError when trying to upload from HTTPS server

While the implementation of the Upload Dir Picker on my local setup went fine, its implementation on our server (https://milou.science.uu.nl/cgi/servicesdevel/DISVIS/disvis/run/aaa_3s7C1ud7) leads to the following error:
SSLError: HTTPSConnectionPool(host='portal.west-life.eu', port=443): Max retries exceeded with url: //webdav/eyJ1c2VybmFtZSI6Im1pa2FlbC50cmVsbGV0QGdtYWlsLmNvbSJ9.1eMwf4.jSFarQPZiMnNMvbWYd9sd5U2WPo/b2drop/disvis_upload_dir/aaa_3s7C1ud7.tgz (Caused by SSLError(CertificateError("hostname 'portal.west-life.eu' doesn't match 'staging.axonea.com'",),))
I'm not really sure if my previous attempts led to this issue or there is a real problem with the certificate. Since the local implementation works (HTTP -> HTTPS) I would guess that the issue stands when using HTTPS to HTTPS communication, but cannot be 100% sure.

Hello, I'm not familiar with the uload dir picker, can you point me to the procedure you followed to set things up?

Sure! To give some context, we implement it with Flask, on the web client side (results.html) we have the following code:
var popup;
var target;
//opens popup window in defined location, sets the target element id.
function openwindow() {
  target = 'uploaddirid';
  popup=window.open('https://portal.west-life.eu/virtualfolder/uploaddirpickercomponent.html', 'newwindow', 'width=640, height=480');
}
//receives message from popup window, fills target element with the data received
function receiveMessage(event) {
    var url = window.location.href;
    if (event.data != "") {
       $("#vf_upload_dir").show();
       document.getElementById(target).innerHTML = " IN PROGRESS...";
       $.getJSON('/upload_to_vf', {
           webdav_url: event.data,
           file_url: url
        }, function(data) {
            document.getElementById(target).innerHTML = " SUCCESS - Open VF";
            document.getElementById(target).setAttribute("href", event.data);
            {#$("#result").text(data.result);#}
        });
    }
}

So the WEBDAV URL is sent to Flask and processed by the following function in views.py:
@app.route('/upload_to_vf')
def upload_to_vf():
    webdav_url = request.args.get('webdav_url')
    file_url = request.args.get('file_url')
    logging.info("Webdav URL: {}\nFile URL: {}".format(webdav_url, file_url))
    import easywebdav
    url = urlparse(webdav_url)
    file = urlparse(file_url).path
    jobid = str(file).split("/")[-1]
    archive_file = join(app.config['RESULTS_DIRECTORY'], jobid, jobid+".tgz")
    webdav = easywebdav.connect(url.hostname, protocol=url.scheme, path=url.path)
    logging.info("Uploading {} to {}".format(archive_file, webdav_url))
    webdav.upload(archive_file, os.path.basename(archive_file))
    return ('', 204)

When I run a local server I successfully send the archive file to the B2DROP folder I've selected in the pop-up window but when I try the same thing from our web server (https://milou.science.uu.nl) I get the error pasted in my initial message.

@francoisruty They followed procedure at https://h2020-westlife-eu.gitbooks.io/virtual-folder-docs/content/doc/integration-guide/working-with-webdav.html
to use webdav url programmatically in Python.
It seems that their subsequent SSL request doesn't go to portal.west-life.eu but to some web-app of opthalmology near Paris. ?

@mtrellet I see weird URL with double slash in the beginning //webdav/eyJ1c2VybmFtZSI6Im1pa2FlbC50cmVsbGV0QGdtYWlsLmNvbSJ9.1eMwf4.jSFarQPZiMnNMvbWYd9sd5U2WPo/b2drop/disvis_upload_dir/aaa_3s7C1ud7.tgz
Can you eliminate it in your code?

@TomasKulhanek The url.path I'm passing to webdav.connect() returns: /webdav/eyJ1c2VybmFtZSI6Im1pa2FlbC50cmVsbGV0QGdtYWlsLmNvbSJ9.1eP9QU.u9iyHRv3AZvPh7RptgF5hy4g0Ks/b2drop/disvis_upload_dir/.
So only with one "/". I tried to remove the leading "/" in the url.path but I got the same error, only with one "/" in the url:
SSLError: HTTPSConnectionPool(host='portal.west-life.eu', port=443): Max retries exceeded with url: /webdav/eyJ1c2VybmFtZSI6Im1pa2FlbC50cmVsbGV0QGdtYWlsLmNvbSJ9.1eP9QU.u9iyHRv3AZvPh7RptgF5hy4g0Ks/b2drop/disvis_upload_dir/aaa_3s7C1ud7.tgz (Caused by SSLError(CertificateError("hostname 'portal.west-life.eu' doesn't match 'staging.axonea.com'",),))

Note: I checked and I use exactly the same arguments in my local implementation that works (tried 2min ago).

@TomasKulhanek  on our company server, we have one public ip address, and a nginx load balancer which forward incoming http requests to the right docker containers, depending on the hostname provided in the request.
We are indeed hosting "staging.axonea.com" but I have trouble understanding why the nginx load balancer forwards requests to the wrong server
I have re-checked all the nginx configs and everything is in order, it's really weird
If you enter in your browser https://portal.west-life.eu/, you end up at the right place, which proves that the config is good

one remark: any request in http is turned into https by the nginx load balancer
ex: if you enter in your browser http://portal.west-life.eu/, it becomes https://portal.west-life.eu/

some people had the same issue: https://github.com/requests/requests/issues/3403
by analogy it would mean mikael put in the request hostname header "staging.axonea.com" but it doesn't make sense, I think there is sth else

No other progress. Will close - open it if the issue appears again.

To come back on this issue, I did some tests today to see if anything was solved, does not seem so, with the same observations, my local webserver (Flask development server) is working well to upload results to the interface, the development version of DisVis does not work (example there: https://milou.science.uu.nl/cgi/servicesdevel/DISVIS/disvis/run/aac_3tlUb6yP - click on Upload archive to VF to trigger the pipeline.)
Here are the logs I get from Flask:
2018-03-20 03:24:04,674 - urllib3.connection - ERROR - connection:360 _match_hostname - Certificate did not match expected hostname: portal.west-life.eu. Certificate: {'notAfter': 'May 29 16:26:15 2018 GMT', 'subjectAltName': (('DNS', 'concourse.luna-technology.com'),), 'subject': ((('commonName', u'concourse.luna-technology.com'),),)}
2018-03-20 03:24:04,681 - disvis_app - ERROR - app:1423 log_exception - Exception on /upload_to_vf [GET]
Traceback (most recent call last):
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/enmrdevel/services/DISVIS/disvis-webserver/disvis_app.py", line 879, in upload_to_vf
    webdav.upload(archive_file, os.path.basename(archive_file))
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/easywebdav/client.py", line 155, in upload
    self._upload(f, remote_path)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/easywebdav/client.py", line 160, in _upload
    self._send('PUT', remote_path, (200, 201, 204), data=fileobj)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/easywebdav/client.py", line 97, in _send
    response = self.session.request(method, url, allow_redirects=False, **kwargs)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/home/enmrdevel/services/DISVIS/env/lib/python2.7/site-packages/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
SSLError: HTTPSConnectionPool(host='portal.west-life.eu', port=443): Max retries exceeded with url: /webdav/eyJ1c2VybmFtZSI6Im1pa2FlbC50cmVsbGV0QGdtYWlsLmNvbSJ9.1ey6wN.tAyTv7_rQ8rYbAERq8ESaC-3G6M/b2drop/disvis_upload_dir/aac_3tlUb6yP.tgz (Caused by SSLError(CertificateError("hostname 'portal.west-life.eu' doesn't match 'concourse.luna-technology.com'",),))```

It seems that I reproduced it in using Python 2.7.5 and urllib3. Simple test for python2 (urlib2 and urllib3) and python3 (urllib ???). Could you test it on your server:
https://gist.github.com/TomasKulhanek/67942cc928dba51c29d4235db03008ae
Using urllib and urllib2 in Python 2.7.5 and Python 3.4.5 seems to work. HTTP 200 returned from VF.

Is there way you can upgrade Flask to be used by Python 3? Or try to upgrade urllib3? It seems that urllib was split among more modules in Python 3, I have no capacity to investigate particular patches which may fix the issue, as it seems that it is bug in underlying connectionpool implementation rather than server configuration of Virtual Folder Portal.

Update: Installed certifi and urllib3[secure] seems to fix the problem on failing test.  Thus I cannot reproduce it on Python 2.7.5 using urllib3.
bash-4.2$ python --version
Python 2.7.5
bash-4.2$ pip show urllib3
Metadata-Version: 2.0
Name: urllib3
Version: 1.22

Is there way you can upgrade Flask to be used by Python 3? Or try to upgrade urllib3?

Theoretically no issue to upgrade Flask to python3, we did it for several web-servers not later than last week. However, the current production servers for disvis and powerfit are running on a rather old cluster where python versions are limited to 2.7.13 maximum. Just checked and we were running python2.7.2 (!), so I updated to 2.7.13 in a virtual env. and tested things. And it seems to work!
Thanks a lot for your help Tomas!

hi guys sorry for being late on this issue reopen, is it solved then, or do you need me to test anything?


Vue delimiters does not work with golang

hi great job
but
Golang uses {{}}
vuejs uses {{}}
I change delimiters
new Vue({
delimiters: ['${', '}']
})
but not working with golang

Hello @AttSee
Thank your for your interest in this project.
However, your issue is a usage/support question, and the issue tracker is reserved exclusively for bug reports and feature requests (as outlined in our Contributing Guide).
We encourage you to ask it on the forum  , Stack Overflow or on gitter and are happy to help you out there.

The docs has a great search. We encourage you to use them: https://vuejs.org/v2/api/#delimiters


Wunderbot error on !addrole and !delrole in DM

Wunderbot throws this error when !addrole or !delrole are used in DM:

msg does not have guild property if it's issued from DM.
https://github.com/lbryio/lbry-wunderbot/blob/101ccf10a7e2eca90e7ee053cef779650ef15711/bot/modules/rolesetter.js#L17-L18

This error is intentional, as the bot can be in multiple discord servers and won't be able to differentiate which server you may be trying to add a role to. Without another optional argument to dictate the guild you are talking about, this isn't something to "fix", rather than another feature.

@coolguy3289 just add
let inPrivate = require('../helpers.js').inPrivate;
and
if (inPrivate(msg)) {
msg.channel.send('You Can Not set roles In DMs!');
return;
}

@Coolguy3289 wanna tackle this?


[Sort-standalone] Update the third-party components LICENSEs of inlong-standalone

Description
The parent issue is: #3422
According to the inspection comments and the latest pom dependency adjustment results, update the third-party dependency licenses of InLong-Sort-standalone
InLong Component
InLong Sort
Are you willing to submit PR?

[X] Yes, I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

see https://github.com/apache/incubator-inlong/pull/3678


markers on VectorTileLayer being clipped at edge / bounds of tiles

Hi, I'm having a small issue regarding distance markers I'm drawing on a map using a VectorTileLayer and a GeoJSONVectorTileDataSource and styling with carto CSS.
My CSS (see below) places a marker and some text on top of each other. The overlap properties seem to work and the text correctly shows on top of the 'circle' marker. However, it looks like the 'circle' marker gets clipped at the bounds of the tile it 'belongs to' and not at the bounds of the whole map view.
From what I can read at https://carto.com/developers/styling/cartocss, the markers should, by default, be clipped at the bounds of the map. Am I missing something or using this the wrong way ?
If I set the marker-clip CSS property, the 'circle' marker isn't clipped at the bounds of tiles anymore, but the text and the 'circle' marker don't overlap anymore (even with text-allow-overlap: true; and marker-allow-overlap: true;) and the text is hidden behind the 'circle marker...
Here's the CSS I'm applying to this particular feature, and a screenshot of a 'clipped' marker.
Should I be using a VectorLayer and not a VectorTileLayer ? It looks like I must use a VectorTileLayer with CartoCSS. I tried adding markers with overlapping text labels on a regular VectorLayer using code but all I got was a very blurry and unsatisfying result.
Any help would be appreciated if I'm doing something wrong :)
Cheers,
Damien
#distancemarkers {
	[zoom>=8] {
		marker-width: linear([view::zoom], (10, 16),(18, 32));
		marker-height: linear([view::zoom], (10, 16),(18, 32));
		marker-line-width: linear([view::zoom], (10, 0.4),(18, 1.2));
		marker-line-color: @secondary;
		marker-placement: point;
		marker-fill: white;
		marker-allow-overlap: true;

		text-name: '[value]';
		text-face-name: @mont;
		text-placement: point;
		text-fill: @secondary;
		text-size: linear([view::zoom], (10, 10),(18, 14));
		text-allow-overlap: true;
	}
}

@dpattou Can you try adding the following 2 lines to you CartoCSS?
marker-clip: false;
text-clip: false;

This behavior is somewhat unfortunate and it is documented here: https://github.com/CartoDB/mobile-sdk/wiki/CartoCSS-notes#label-rendering-mode-vs-simple-rendering-mode

Thanks for your quick answer !
By adding these, the circle marker doesn't get clipped anymore, but somehow the text doesn't show (and is probably drawn beneath or hidden because of overlap?).
I have also tried playing with the :: notation to add another layer via CSS but to no avail.
I guess I could achieve what I need by adding the circle and text to two different layers but that wouldn't be a great solution.

@dpattou You are correct, I had forgotten about label (marker/text) ordering not being respected when using this. This is a limitation of the SDK that will be fixed at some point.
If you can make your marker into a bitmap (or SVG file), then you can use 'shields'. Shields basically combine both background image and text and are used to show highway numbers, for example. The following snippet may help:
  shield-placement: point;
  shield-name: [value];
  shield-face-name: @mont;
  shield-fill: @secondary;
  shield-file: url('shield/circle.png');
  shield-size: 9.0;

The problem with shields is that you can not resize shield background image the same way as you can do with markers, you may need to create multiple images for different zoom levels.

Thanks, this solution could work for me. However, the shield-fill property is applied to the whole 'circle' image i'm using and not just the text. Is there a specific image / color format I should use ?

@dpattou You have found a bug :-), 'shield-fill' should not affect the color of the background image. It is a regression in 4.4.2 and 4.4.3, 4.4.1 handled it correctly.
So you can downgrade to 4.4.1 for now. The fix will be in 4.4.4 version, I plan to release first RC of 4.4.4 at the end of December.
4.4.4 will likely also have an option to manually configure vector tile 'buffer sizes' for GeoJSONVectorTileDataSource. By setting this to a larger value (default is 4 pixels), the original CartoCSS with separate marker/text would also work without clipping artifacts.
Thanks for reporting this.

@mtehver can wait to see that buffer size option. could help in many use cases.
ad we are here is there a true benefit in using shield over marker + label? let say we have 10000 of them are there some real optimisations with shield?

No worries, and thank you for having a look. Great, we can wait until 4.4.4 is released.

@farfromrefug This change is available in 'develop' branch. Before creating a GeoJSONVectorTileLayer layer, you can set its buffer size with setDefaultLayerBuffer method. Use 'buffer in tile pixels' as its argument, the default is 4.0. Note that it must be set before creating a layer.

@mtehver question about tiles buffer. Is it something used too with vector tiles layers? It could help on an issue i have.
If it is used does it only influence the drawing of geometries or would it also have consequences on the geometry returned when searching vector tiles? I am trying to recreated routes geometry spanning over multiple tiles. Which is why i ask.

@farfromrefug Its affecting actual vector tiles. With buffering, geometry is not clipped at exactly tile boundaries, but at a 'buffer distance' from tile boundaries. Thus if you want non-overlapping geometry in search results, you need to set buffer to 0. But that would cause artifacts when rendering the tiles, especially if you use clipped markers or wide lines. Also large buffer values make tiles larger and rendering slower, so it is a balancing act.

@mtehver i understand. Could we get that setDefaultLayerBuffer for more data sources then? Maybe even all ? (my case it would be MBTiles data source).
Would it be possible to imagine a different value for rendering and for searching in vector tile layer?

@farfromrefug Setting buffer size only makes sense when tiles are being built. The only datasource in the SDK that builds tiles is GeoJSONVectorTileDataSource. Other datasources simply fetch and forward already created tiles.

@dpattou 4.4.4RC1 is now available and contains the fix. Final 4.4.4 is planned for mid-January.

@mtehver thanks for the explanation. we ll close the issue as soon as @dpattou tested the new release

Hi, just tested setting the default buffer size without touching the css and it no longer clips. I set the size to 32.0 as this is the maximum size of this marker.
Thanks, I'm closing this !


Add UI Architecture description in architecture.md

This is the description describing the interaction between the extension and the actual UI (what is rendered in the chat panel).

Prettier check failing. Should be fine after we have format on save


PRINTABLE_STRING in signing request prevents wildcard domains

When creating a certificate signing request, x509_write_name() uses the PRINTABLE_STRING type for everything but emailAddress. This prevents the use of asterisks to create a wildcard domain as part of the common/domain name since they aren't part of that character set. The request will still be created but Openssl complains about invalid characters and stops processing the request.
It would be more useful to also use IA5_STRING for the MBEDTLS_OID_AT_CN OID.

ARM Internal Ref: IOTSSL-733

Hi @kevinpt,
This isn't a planned enhancement, but we would certainly welcome a community contribution that provides this as a configurable option.

Fixed through #1641.


AVRO-1723

Implementation for IDL forward declarations... actually declaration order does not matter anymore...

Ryan, I have updated  branch with all your suggestions where I see no disagreement.
Let me know what you think about the others and about my explanations...
Looking forward of getting this into the codebase!
cheers!

Zoltan, thanks for making those changes. I've added a few more comments from a more in-depth review.

Ryan, I have updated the code with your suggestions, some comments and a few renames, please take another look and let me know if it makes more sense. thank you.

@zolyfarkas, I still don't think it is clear why there are both resolve and intern methods. Can this be done with a single resolve method? There isn't much difference between what they do and there's a lot of duplicated code between the two.

@rdblue, will take some time in the next 2 weeks and simplify this code and attempt to create a traversal utility as you suggested

@rdblue Ryan, I have a first version of a Schema visitor implementation:
https://github.com/zolyfarkas/spf4j/blob/master/spf4j-avro/src/main/java/org/spf4j/avro/schema/Schemas.java#L75
The visitor interface:
https://github.com/zolyfarkas/spf4j/blob/master/spf4j-avro/src/main/java/org/spf4j/avro/schema/SchemaVisitor.java
A particular implementation:
https://github.com/zolyfarkas/spf4j/blob/master/spf4j-avro/src/main/java/org/spf4j/avro/schema/CloningVisitor.java
It is still work in progress since I am using it in other use cases and might adapt it to make it easier to use...
Sorry for the slow progress, looking forward for your input...

Changed code to use a more generic schema walker...


Best FTSO Update with corrected URI

Why the address update?

Our address on Flare has been the same since launch. TomT told us not to use the same addy as Songbird.


Problem with multiple subdomains

Hi !
There is a bug when i try to use multiple domains ( lets say exemple.tld and my.example.tld ) with two differents webroots, the script list all thé subdomains in the certificate request, but only install it on the main vhost. I'll send you my way using another script to resolve this hope you can correct it ;)

So if I'm understanding you correctly, you want to use one certificate to cover all of the domain names hosted across an account, rather than just an individual site within that account, correct?  I designed the script to handle one certificate per site (with the possibility of multiple certificates per user), as that's the use case that I'm using personally, though I can see reasons why you might want to do it differently.
Let me think it over for a bit...I can probably change things up to make it work with both options.  I might take me a little while to get it done, though, as I go back to work tomorrow.  This project came about because I was off work for the holidays and had time to tinker.

The problèmes with doing one domain at a time, is that lets'encrypt will block you fast as their policy is 5 certificates per domain ( the 2nd level tld ) ... So you can be very fast blocked with initial certificates and renewals

5 certs / tld / week to ne precise

Just to give you an update, I have a solution, I just need to test it before I feel comfortable releasing it.  I'll try to do that tomorrow and, if all goes well, I'll push out the update soon after.

If you want me to test it dont hesitate ;)
Le 11 janv. 2016 21:15, à 21:15, jpitoniak<EMAIL_ADDRESS>a écrit:

Just to give you an update, I have a solution, I just need to test it
before I feel comfortable releasing it.  I'll try to do that tomorrow
and, if all goes well, I'll push out the update soon after.

Reply to this email directly or view it on GitHub:
https://github.com/interbrite/letsencrypt-vesta/issues/3#issuecomment-170676336

OK, the update has been committed. A "git pull origin master" in /usr/local/letsencrypt-vesta should get you the latest copy.
The new syntax lets you specify multiple users and/or sites per user.  The format is
-u username1 u1site1 u1site2 ... u1siteX ... -u usernameN uNsite1 uNsite2 ... uNsiteX

where -u indicates a new username and each username is optionally followed by a list of sites.  (If no sites are specified the script will every site under that account.)
Like before, you need only specify the main domain for each site and the script will include all of the aliases automatically.  For backwards compatibility, the first -u is optional.
Some examples:

letsencrypt-vesta felines cat.domain.com (single site, works as before)
letsencrypt-vesta -u felines cat.domain.com (same as above, new syntax)
letsencrypt-vesta felines (create cert for every site in the felines account)
letsencrypt-vesta felines cat.domain.com tiger.domain.com (create cert for cat and tiger sites in the felines account)
letsencrypt-vesta felines cat.domain.com -u canines (create cert for cat.domain.com in felines account and all domains in the canines account)

Hopefully that meets your needs. :)


HDDS-8367. setquota should have a check on usedNamespace [NameSpacequota]

What changes were proposed in this pull request?

validation for namespace quota for bucket count when setQuota for volume for namespace quota

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8367
Please replace this section with the link to the Apache JIRA)
How was this patch tested?
Unit test cases

Thanks @sumitagrawl for the patch and @krishnaasawa1 for the review.


Reducers don't translate

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

Thank you for your contributions to the FreeCodeCamp Portuguese translation. Contributions like yours help us improve the FreeCodeCamp Portuguese translation for millions of users to learn programming in their native language.
Hope you keep helping our repository with more contributions.


Optimize Tag

https://www.figma.com/file/xZ0IW0MJO0vnFicmrHiKaY/Components-Post?type=design&node-id=11194%3A50777&t=5mzQjs4il43FOfTt-1

@wueestd wird der Active State noch ergänzt oder brauchts den nicht?

https://www.figma.com/file/xZ0IW0MJO0vnFicmrHiKaY/Components-Post?type=design&node-id=11194%3A50777&t=GUPIwHa9X6FjgfKx-1 Active state habe ich bewusst weggelassen und sonst würde ich glaube einfach den hover nehmen, was meinst du? @rouvenpost

Looks good, a few inputs:

Can there be a text only tag?
Text on the green/success tag needs to be black according to the current WCAG 2.1 contrast algorithm. With WCAG3s APCA it will be white, but that's not released yet
Is there a max-length for tags? I think it could make sense to build a more solid tag that does not break on multiple lines. We could set a character limit of e.g. 20 (in CSS: max-width: 20ch; text-overflow: ellipsis)

yes the can be text only, I added a toggle
I changed the text on green to black
we can not set a limit but we can write guidelines. not sure if setting a character limit is the right thing to do :)
also I would get rid oft the small 20px height variant or do you see any need for this?

@kaloyanso could you do a quick review of the component: https://www.figma.com/file/xZ0IW0MJO0vnFicmrHiKaY/Components-Post?type=design&node-id=12815%3A61841&mode=design&t=Z8WKSeFXKT9PNnrY-1

defined a max lenght and added documentation. Have a look @gfellerph !

Looks good from my perspective! I added the component to the tracker board https://github.com/orgs/swisspost/projects/4/views/1?pane=issue&itemId=43864320 and created a dev ticket https://github.com/swisspost/design-system/issues/2237


conda pinned to old version

Conda is pinned to 4.5.*. As a result its unupgradeable without manually altering conda-meta. New conda 4.7.* has had numerous upgrades and is considerably more performant, consider upgrading.

Conda init action has a MINICONDA_VERSION parameter that allows to override pinned Miniconda version:
gcloud dataproc clusters create $CLUSTER --image-version 1.2 \
    --metadata MINICONDA_VERSION=4.7.10 \
    --initialization-actions gs://dataproc-initialization-actions/conda/bootstrap-conda.sh


error

make sure you have imported the correct version and are using the right namespaces.
Namespace for .NET Discord.NET.Webhook
Namespace for .NET Framework Discord.Webhook


MB-8270 TOO can approve diversion requested shipment via api

Description
This PR piggybacks off of Moncef's PR that adds in the shipment router. TOO will now be able to approve the diverted shipment via api.
Reviewer Notes
Is there anything you would like reviewers to give additional scrutiny?

Did a refactor to clean up the calculated required delivery date and when we create the shipment level service items
Diverted shipments doesn't auto-create the shipment level service items since they were already created when the shipment was approved the first time around

Setup
Add any steps or code to run in this section to help others prepare to run your code:
make db_dev_e2e_populate
make server_run
make office_client_run

Test

Make sure that you have your postman setup properly

We'll be hitting the /move_task_orders/:moveTaskOrderID/mto_shipments/:shipmentID/status patch endpoint

In the office app, find any move that has been APPROVED

Grab the ID of the mto_shipment and move (move task order) either from the network tab or react-query dev tools

Grab the eTag from the mto_shipment either from the network tab or react-query

Fill in moveTaskOrderID and shipmentID with IDs in Postman

Fill in the If-Match header

Fill in the body, we'll first divert a shipment

Click Send to divert the shipment

Then update the body to approve the shipment (don't forget to also update the etag)

Click Send to approve the diverted shipment

Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Messages

:book:
:link: MB-8270

  Generated by :no_entry_sign: dangerJS against 08f9dadee503b6b7796f11e30b2366ca69b3af66


Electron-Store return error if < bytecodePlugin > is enabled in < electron.vite.config.ts >

Describe the bug
Inside electron.vite.config.ts i have a classic configuration, and i enable bytecodePlugin() :
import { defineConfig, externalizeDepsPlugin, bytecodePlugin } from 'electron-vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  main: {
    plugins: [externalizeDepsPlugin(), bytecodePlugin()]
  },
  preload: {
    plugins: [externalizeDepsPlugin(), bytecodePlugin()]
  },
  renderer: {
    resolve: {
      alias: {...}
    },
    plugins: [react()],
  }
})

But when i start the app on preview: npm run start i got an error:
TypeError: Cannot read properties of undefined (reading 'store')
This error happen ONLY when bytecodePlugin is enable. I want to fixe with exclude:
  main: {
    plugins: [
      externalizeDepsPlugin(),
      bytecodePlugin({
        exclude: ['electron-store']
      })
    ]
  },
  preload: {
    plugins: [
      externalizeDepsPlugin(),
      bytecodePlugin({
        exclude: ['electron-store']
      })
    ]
  }

But exlude dos'nt exist on BytecodeOptions.
Store IPC init:
    /**
     * Electron Store IPC Events
     * @param {string} key
     * @param {any} property
     */
    ipcMain.handle('electron-store-get', async (_event, key) => {
      return (store as any).get(key)
    })

    ipcMain.handle('electron-store-set', async (_event, property, val) => {
      ;(store as any).set(property, val)
      return (store as any).get(property)
    })

    ipcMain.handle('electron-store-delete', async (_event, key) => {
      ;(store as any).delete(key as string)
    })

    ipcMain.handle('electron-store-clear', async (_event) => {
      ;(store as any).clear()
    })

I use older version of electron-store: "electron-store": "^8.2.0",
Electron-Vite Version
^2.3.0
Electron Version
^31.0.2
Vite Version
^5.3.1
Validations

[x] Follow the Code of Conduct.
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

https://electron-vite.org/guide/dev#dependencies-vs-devdependencies
it should be installed  in dependencies.

I think it's a code problem and the error message is
very clear.
there is no need for byteNode.
for example : https://github.com/alex8088/EvPlayer

Very strange, when i npm run dev / start or event build, without bytenodePlugin, all is fine, store work. But soon as i enable bytenodePlugin, store dosn't work anymore.
"electron-store": "^8.2.0"
import Store from 'electron-store'
const store = new Store()

    ipcMain.handle('electron-store-get', async (_event, key) => {
      return store.get(key)
    })

    ipcMain.handle('electron-store-set', async (_event, property, val) => {
      store.set(property, val)
      return store.get(property)
    })

    ipcMain.handle('electron-store-delete', async (_event, key) => {
      store.delete(key)
    })

    ipcMain.handle('electron-store-clear', async (_event) => {
      store.clear()
    })

This is the only code i have related to electron-store, again, it work in dev/preview/ AND production , but without bytenode, sorry for taking your time Alex. I will make more test

https://github.com/alex8088/electron-conf
recommend electron-conf


Default fit_sum_model_variogram can overfit short ranges

See for example fit below, courtesy of Julian Llanto:

We should better adapt default arguments, maybe prevent a range shorter than X times the resolution?

Not sure what the most robust method would be here :thinking:.

For the moment, would it be possible to define threshold for when it becomes a problem and then trigger a warning if someone tries anyway?

It doesn't seem to happen so often from what I hear... so maybe we can leave as is for now, until we add an enhancement.


Building an object from a heterogeneous collection

So "data" can be a heterogeneous collection. Our clientside guys ask us for an ability to map that collection to definite fields by type.
Example
{
  "data": [
    {
      "id": 1,
      "type": "a",
      "attributes": {"k":10}
    },
    {
      "id": 2,
      "type": "a",
      "attributes": {"k":42}
    },
    {
      "id": 1,
      "type": "b",
      "attributes": {"m":"n", "s":100}
    },
  ]
}

We need to convert it to
{
  "field_a": [
    {
      "id": 1,
      "type": "a",
      "attributes": {"k":10}
    },
    {
      "id": 2,
      "type": "a",
      "attributes": {"k":42}
    },
  ],
  "field_b": [
    {
      "id": 1,
      "type": "b",
      "attributes": {"m":"n", "s":100}
    },
  ]
}

and later to
{
  "field_a": [
    {
      "k":10
    },
    {
      "k":42
    },
  ],
  "field_b": [
    {
      "m":"n",
      "s":100
    },
  ]
}

It's needed in order to use straight mapping to templates: we have to know how to address to a collection of "a" type and of "b" type.
So we decided to use "meta"
{
  "meta": {
    "schema": [
      {"name":"field_a", "type":"a"},
      {"name":"field_b", "type":"b"},
    ]
  }
}

Are we doing something wrong? Are there any best practices for handling heterogeneous collections in "data"? Any advice is appreciated.

This question should be asked on http://discuss.jsonapi.org/.
Could you do something along these lines before sending it to the template?
const data = [
  { id: "1", type: "a", attributes: { field: "1a" } },
  { id: "1", type: "b", attributes: { field: "1b" } }
];
const namespacedData = data.reduce(function (result, item) {
  const type = item.type;
  if (!result[type]) {
    result[type] = [];
  }
  result[type].push(item);
  return result;
}, {});

Sorry, moving to http://discuss.jsonapi.org/t/building-an-object-from-a-heterogeneous-collection/47 .


DNS Control Only 1 of 2 Instances

Environment
Docker
Version
0.15.2
Describe the problem
Only one of two Pi Hole was being controlled by widget.
When checking the logs I received the below warnings which dint make sense are PiHole2 was the one working with the Control Widget. I found that my my API keys were initially identical as I had previously configured them with identical passwords which is used to generate the API key. I believe this is what was pushing the warnings. After resolving this I still could only control the second PI i added integration for (the one mentioned in all the warnings).
I removed and readded both PIs from the apps and added them back and now nether is being picked up by the widget.
Logs
Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production
ℹ Saving updated configuration of 'default' config.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
ℹ Saving updated configuration of 'default' config.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
ℹ Local icons repository directory exists and contains 1 icons
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
WARN  There are apps that have missing configuration options: [PIHOLE2] please input the correct secrets once again for the concerned app(s), save them, exit edit mode and reload the page.
ℹ Saving updated configuration of 'default' config.
ℹ Detected credential change of private secret. Value will be overwritten in configuration
ℹ Local icons repository directory exists and contains 1 icons
Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
Exporting hostname...
Migrating database...
yarn run v1.22.19
$ ts-node ./migrate.ts
Done in 1.86s.
Starting production server...
Listening on port 7575 url: http://5ac07697851a:7575
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Detected credential change of private secret. Value will be overwritten in configuration
ℹ Local icons repository directory exists and contains 1 icons
Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Detected credential change of private secret. Value will be overwritten in configuration
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Detected credential change of private secret. Value will be overwritten in configuration
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Detected credential change of private secret. Value will be overwritten in configuration
ℹ Local icons repository directory exists and contains 1 icons
Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production
Exporting hostname...
Migrating database...
yarn run v1.22.19
$ ts-node ./migrate.ts
Done in 1.88s.
Starting production server...
Listening on port 7575 url: http://5ac07697851a:7575
ℹ Local icons repository directory exists and contains 1 icons
ℹ Local icons repository directory exists and contains 1 icons
ℹ Saving updated configuration of 'default' config.
ℹ Local icons repository directory exists and contains 1 icons
Error: 'sharp' is required to be installed in standalone mode for the image optimization to function correctly. Read more at: https://nextjs.org/docs/messages/sharp-missing-in-production
Context
No response
Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

Hi, sorry for the wait.
Instances having the same API key does not matter. In fact you should be able to add the exact same pihole twice and it would still work.
Maybe try to manually open (without modifying) your configuration file and check both piholes have an entry named pihole under integration.
Maybe third time is the charm. Enter edit mode, add 1st pihole as "PiHole 1", add integration, save and exit edit mode, then go again for "PiHole 2".


fix assets not serving (#136)

2c13e255ce7ffa3fff8e3a8b424d398ffceb472d added response size logging via
server-sink, which acts as a passthrough stream between req and res.
However, send, which streams the static files from disk, has a stateful
pipe() method and assumes that the destination stream is an
HttpServerResponse. Since the sink through stream is not, things break.
This PR just foregoes response size logging on assets. I'd be happy with just
changing the static stream code to simply
fs.createReadStream(req.url.substring(1)).pipe(sink)

but we'd lose out on the fancy features of send (if they're desired by
others). Modifying send itself to be tolerant of intermediary passthrough
streams looks difficult -- there are some pretty deep assumptions in place
about it knowing where the res is and being able to mutate it.

Oh dang - I think this might leak mem though as sink isn't closed. We should probably have a patch in server sink to support send() somehow - e.g. forward all the events. Does that sound reasonable?

Good for now; figured out to get the res size even if streaming https://github.com/yoshuawuyts/benchmark-anything-server/blob/master/lib/index.js#L24 so we can migrate to this approach later on. Woot!

v6.1.1 - thanks heaps! (and sorry for not merging earlier; been sick for the past few days :( )

Thanks yosh! I was meaning to get around to making the changes you mentioned, but glad this was Good Enough(tm) for now.


Theme Manager with roblox studio mod manager?

So it's not really an issue but would be very much appreciated, so is there any way you can add custom themes.
There's already something like that but it's just a mess, and I would love it if you could integrate it here!
https://github.com/rbxrootx/Roblox-Studio-CustomTheme-Patcher/releases/tag/v0.2.0-alpha
It does some byte patching and allows custom themes to be loaded, it'd be really cool if you could make it, please!

I agree, it would be cool to see this

Any plans on integrating this? The linked theme patcher has seemingly completely broke; so maybe a better long-term solution could be put in place with mod manager.. someway


Batch inference for inference_detector

Does the mmdetection supports batch inference for inference_detector? If how can I do that. I could not able to find it in documentation.
Batch processing is a must in my case.

Thank you. I found that we can directly use the list of numpy array(image) as input


ReadMe File Needs Updating

File is no longer accurate.
Mentions Host.Ap which does not exist
Should mention to naviagate to /src folder to execute dotnet commands
Should mention how to setup the database
Should mention how to run the docker file

Please update step 3 to the following :
Open PowerShell to your repository root directory and run the following command:
dotnet ef database update --project src/BlackSlope.Api/BlackSlope.Api.csproj

Link to BlackSlope in Action: A Guide to Using our DotNet Reference Architecture   should be added
the step can be updated according this article. which would seems easier to follow.

Updating since I inadvertently fixed most of this as part of a cleanup earlier this year.

Mentions Host.Ap which does not exist
Should mention to naviagate to /src folder to execute dotnet commands
Should mention how to setup the database
Should mention how to run the docker file


Move complex examples to own repositories

The examples in the repository should be easy to run on any platform. If they are not, they should be moved to own repositories, with links from this one.
These examples should be moved:

ros_node
controlnet (unless we can patch it to work without CUDA)

while in the process we should also add a blueprint to ros_node

Remember to use https://github.com/rerun-io/rerun_template/ when setting up the new repositories!


[matter_yamltests] Add a dedicated class to load the yaml, enforce ty…

…pes, validate keywords, and add some implicit rules checking
Problem
When loading yaml test files with the python parser, most of the expectations about types of the yaml schema are fine. But this is mostly because it was enforced by the strong type checking that was existing before running dynamically as it was generating code that needs to be compiled.
This PR adds a dedicated YamlLoader class with various tests to matter_yamltests. This class loads a yaml file and check that it is a proper yaml 'test' file.
In summary it adds:

type checking for keywords
validate the allowed keywords even for disabled tests
Add some implicit rules about the yaml grammar, e.g:

nodeId and groupId can not coexists
Group messages does not expect responses:

See https://github.com/CHIP-Specifications/chip-test-plans/issues/2431 for details
chip-repl was lying about it working. This is because it does not supports group communication and so it fallbacks on the default path that uses unicast messages and so it effectively able to received a response but that is unexpected.
...

A lot of tests for invalid yaml test

Most of the additional code in this PR comes from the tests, the rest is just adding types to the list of allowed keywords plus the addition of those implicit rules.

This PR is now on top of #25016 and I have added the commits from #25016 here. But I will remove those once #25016 lands.

Fast tracking test enhancements


Ames should silently drop packets with mismatching life

Pretty sure the current behavior ("crash and yell a stack trace") is not what we want.
The asserts here and here should probably be silent checks instead. I think that's as easy as mimicking what's done here. Is that right?

That sounds right.  It could be worth adding a |ames-verb command that would turn on one-line printfs in case of life mismatch (including the lifes themselves), bad protocol number, and other cases.

Maybe this is a side-effect, maybe this should be its own issue:
Ames has a hard time restoring communications after key changes. From what I've observed, it continues struggling with older packets/older keys, even after it has seen new chain state, and the sender/receiver is actually using those new keys.


echidna: 2.0.2 -> 2.0.3

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

LGTM.
@arcz If you're interested in echidna, want to add yourself as a maintainer?

@cdepillabout I'm already a maintainer, probably should change my maintainer username to github username.

Huh, that's strange.  Normally ofborg will tag your PR with a by maintainer tag.  Here's an example:
https://github.com/NixOS/nixpkgs/pull/190355

Maybe ofborg didn't do it in this case because your maintainer name and github handle are different?  I would have thought that ofborg would be able to figure that out...


Correction in API Base URL for chat/completion requests

The current base URL used for chat/completion requests is pointing to an incorrect host(<IP_ADDRESS>), causing a failure in request processing.
http://<IP_ADDRESS>/gpt4all-lora-q4/v1/chat/completions
@tiero @Janaka-Steph

This seems to be drives from your local IP of your home network?

this seems connected to https://github.com/premAI-io/prem-app/issues/474

Testing docker locally, you can see that baseUrl received from the daemon is wrong. This is my public IP.

I think that is kinda expected, so we need to think if we want to have a special rule for localhost eventually in the frontend or daemon. This is only for development after all

I have a different result instead @Janaka-Steph using https://demo.prem.ninja
The Service Details page shows correctly the baseUrl for LLama service

But then the playground chat calls the wrong baseUrl ie.

Can you check TanStack devtool ?

I am on released on demo.prem.ninja, is there a way to do from there?

I am making a new Docker release using latest main, let's see if it fixes

We can add devtool on production, hidden and lazy loaded, triggered by a command in browser console

The front just use service.baseUrl here

But baseUrl in the service detail page seems correct

Fixed using the latest main!

Surprise!


Fix reraise of exception

We were hiding the real error
from the user
Related https://github.com/rtfd/readthedocs.org/issues/4745#issuecomment-470754025

We were catching a general ProjectConfigurationError execption and re-raising the error with a different message but with the same type :man_shrugging:


Missing Class 'Psr\Log\NullLogger'

I was trying to run the example.php but this happened:
PHP Fatal error:  Uncaught Error: Class 'Psr\Log\NullLogger' not found in /path/to/my/PAMI-cloned-repo/PAMI/src/PAMI/Client/Impl/ClientImpl.php:458
Stack trace:
#0 /path/to/my/PAMI-cloned-repo/PAMI/doc/examples/quickstart/example.php(155): PAMI\Client\Impl\ClientImpl->__construct(Array)
#1 {main}
  thrown in /path/to/my/PAMI-cloned-repo/PAMI/src/PAMI/Client/Impl/ClientImpl.php on line 458

Fatal error: Uncaught Error: Class 'Psr\Log\NullLogger' not found in /path/to/my/PAMI-cloned-repo/PAMI/src/PAMI/Client/Impl/ClientImpl.php on line 458

Error: Class 'Psr\Log\NullLogger' not found in /path/to/my/PAMI-cloned-repo/PAMI/src/PAMI/Client/Impl/ClientImpl.php on line 458

Call Stack:
    0.0135     366384   1. {main}() /path/to/my/PAMI-cloned-repo/PAMI/doc/examples/quickstart/example.php:0
    0.0303     433504   2. PAMI\Client\Impl\ClientImpl->__construct() /path/to/my/PAMI-cloned-repo/PAMI/doc/examples/quickstart/example.php:155

My PAMI.php (the autoloader):
<?php

define('PAMI_CLASSES_DIR', __DIR__ . '/');

class PAMIAutoloader
{
	public static function PAMIDefaults($class_name)
	{
		$file = PAMI_CLASSES_DIR . str_replace('\\', '/', $class_name) . '.php';

		if (file_exists($file))
		{
			include $file;
		}
		else
		{
			echo "$file DOES NOT EXIST\n";
		}
	}
}

// spl_autoload_register('PAMIAutoloader::PAMIDefaults');

require_once dirname(__FILE__).'/PAMI/Listener/IEventListener.php';
require_once dirname(__FILE__).'/PAMI/Client/IClient.php';
require_once dirname(__FILE__).'/PAMI/Client/Impl/ClientImpl.php';

At the beginning I thought my PAMIAutoloader wasn't loading the correct classes but I found out that it only imports the last 3 that are done manually. I don't know where the other class is…

Is this a fully functional version? there's a lot of "missing class" errors (and they're not in the repo).

That's not a PAMI class. Please see: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md and https://packagist.org/packages/psr/log

No, I didn't bother to type in here the other classes.


New Device - Doorbell D230

Describe The Bug
Is there a chance of being able to add functionality to view the Tapo D230 doorbell to the plugin? At the moment it just seems to cause errors when the IP address is added to the list.
Expected behavior
Doorbell Camera feed to show in Home app.
Logs
[10/4/2023, 2:51:04 PM] [Tapo] Failed to get info about: [IP Address]
Plugin Config
N/A
Plugin Version
homebridge-tp-link-tapo v4.0.0
Homebridge Version
v1.6.1
Node.js Version
v18.14.2
NPM Version
Unknown
Operating System
v18.14.2

Hey, is that the only error? try to enable the debug mode on homebridge, the doorbell is not implemented but with debug mode i can find if is possible to add support for it or not

Hey thanks for the reply.
This is the information I have pulled from the full log (redacted the IP address and the Public Key):
[10/7/2023, 7:45:51 PM] [Tapo] Error sending command: deviceInfo AxiosError: connect ETIMEDOUT [IP.ADDRESS]:80     at Function.AxiosError.from (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/core/AxiosError.js:89:14)     at RedirectableRequest.handleRequestError (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/adapters/http.js:593:25)     at RedirectableRequest.emit (node:events:513:28)     at ClientRequest.eventHandlers.<computed> (/usr/local/lib/node_modules/homebridge-tp-link-tapo/node_modules/follow-redirects/index.js:14:24)     at ClientRequest.emit (node:events:513:28)     at Socket.socketErrorListener (node:_http_client:502:9)     at Socket.emit (node:events:513:28)     at emitErrorNT (node:internal/streams/destroy:151:8)     at emitErrorCloseNT (node:internal/streams/destroy:116:3)     at processTicksAndRejections (node:internal/process/task_queues:82:21) {   port: 80,   address: '[IP.ADDRESS]',   syscall: 'connect',   code: 'ETIMEDOUT',   errno: -60,   config: {     transitional: {       silentJSONParsing: true,       forcedJSONParsing: true,       clarifyTimeoutError: false     },     adapter: [ 'xhr', 'http' ],     transformRequest: [ [Function: transformRequest] ],     transformResponse: [ [Function: transformResponse] ],     timeout: 0,     xsrfCookieName: 'XSRF-TOKEN',     xsrfHeaderName: 'X-XSRF-TOKEN',     maxContentLength: -1,     maxBodyLength: -1,     env: { FormData: [Function], Blob: [class Blob] },     validateStatus: [Function: validateStatus],     headers: Object [AxiosHeaders] {       Accept: 'application/json, text/plain, */*',       'Content-Type': 'application/json',       'User-Agent': 'axios/1.5.1',       'Content-Length': '352',       'Accept-Encoding': 'gzip, compress, deflate, br'     },     httpAgent: Agent {       _events: [Object: null prototype],       _eventsCount: 2,       _maxListeners: undefined,       defaultPort: 80,       protocol: 'http:',       options: [Object: null prototype],       requests: [Object: null prototype] {},       sockets: [Object: null prototype],       freeSockets: [Object: null prototype] {},       keepAliveMsecs: 1000,       keepAlive: false,       maxSockets: Infinity,       maxFreeSockets: 256,       scheduling: 'lifo',       maxTotalSockets: Infinity,       totalSocketCount: 1,       [Symbol(kCapture)]: false     },     method: 'post',     url: 'http://[IP.ADDRESS]/app',     data: '{"method":"handshake","params":{"key":"-----BEGIN PUBLIC KEY-----\\[THE PUBLIC KEY]-----END PUBLIC KEY-----\\n"},"requestTimeMils":1696704290671}'   },   request: <ref *1> Writable {     _writableState: WritableState {       objectMode: false,       highWaterMark: 16384,       finalCalled: false,       needDrain: false,       ending: false,       ended: false,       finished: false,       destroyed: false,       decodeStrings: true,       defaultEncoding: 'utf8',       length: 0,       writing: false,       corked: 0,       sync: true,       bufferProcessing: false,       onwrite: [Function: bound onwrite],       writecb: null,       writelen: 0,       afterWriteTickInfo: null,       buffered: [],       bufferedIndex: 0,       allBuffers: true,       allNoop: true,       pendingcb: 0,       constructed: true,       prefinished: false,       errorEmitted: false,       emitClose: true,       autoDestroy: true,       errored: null,       closed: false,       closeEmitted: false,       [Symbol(kOnFinished)]: []     },     _events: [Object: null prototype] {       response: [Function: handleResponse],       error: [Function: handleRequestError],       socket: [Function: handleRequestSocket]     },     _eventsCount: 3,     _maxListeners: undefined,     _options: {       maxRedirects: 21,       maxBodyLength: Infinity,       protocol: 'http:',       path: '/app',       method: 'POST',       headers: [Object: null prototype],       agents: [Object],       auth: undefined,       family: undefined,       beforeRedirect: [Function: dispatchBeforeRedirect],       beforeRedirects: [Object],       hostname: '[IP.ADDRESS]',       port: '',       agent: [Agent],       nativeProtocols: [Object],       pathname: '/app'     },     _ended: false,     _ending: true,     _redirectCount: 0,     _redirects: [],     _requestBodyLength: 352,     _requestBodyBuffers: [ [Object] ],     _onNativeResponse: [Function (anonymous)],     _currentRequest: ClientRequest {       _events: [Object: null prototype],       _eventsCount: 7,       _maxListeners: undefined,       outputData: [],       outputSize: 0,       writable: true,       destroyed: false,       _last: true,       chunkedEncoding: false,       shouldKeepAlive: false,       maxRequestsOnConnectionReached: false,       _defaultKeepAlive: true,       useChunkedEncodingByDefault: true,       sendDate: false,       _removedConnection: false,       _removedContLen: false,       _removedTE: false,       strictContentLength: false,       _contentLength: '352',       _hasBody: true,       _trailer: '',       finished: false,       _headerSent: true,       _closed: false,       socket: [Socket],       _header: 'POST /app HTTP/1.1\r\n' +         'Accept: application/json, text/plain, */*\r\n' +         'Content-Type: application/json\r\n' +         'User-Agent: axios/1.5.1\r\n' +         'Content-Length: 352\r\n' +         'Accept-Encoding: gzip, compress, deflate, br\r\n' +         'Host: [IP.ADDRESS]\r\n' +         'Connection: close\r\n' +         '\r\n',       _keepAliveTimeout: 0,       _onPendingData: [Function: nop],       agent: [Agent],       socketPath: undefined,       method: 'POST',       maxHeaderSize: undefined,       insecureHTTPParser: undefined,       joinDuplicateHeaders: undefined,       path: '/app',       _ended: false,       res: null,       aborted: false,       timeoutCb: null,       upgradeOrConnect: false,       parser: null,       maxHeadersCount: null,       reusedSocket: false,       host: '[IP.ADDRESS]',       protocol: 'http:',       _redirectable: [Circular *1],       [Symbol(kCapture)]: false,       [Symbol(kBytesWri[10/7/2023, 7:45:51 PM] [Tapo] Retry to connect in 10s : [IP.ADDRESS] tten)]: 0,       [Symbol(kEndCalled)]: false,       [Symbol(kNeedDrain)]: false,       [Symbol(corked)]: 0,       [Symbol(kOutHeaders)]: [Object: null prototype],       [Symbol(errored)]: null,       [Symbol(kUniqueHeaders)]: null     },     _currentUrl: 'http://[IP.ADDRESS]/app',     [Symbol(kCapture)]: false   },   cause: Error: connect ETIMEDOUT [IP.ADDRESS]:80       at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {     errno: -60,     code: 'ETIMEDOUT',     syscall: 'connect',     address: '[IP.ADDRESS]',     port: 80   } } [10/7/2023, 7:45:51 PM] [Tapo] Failed to get info about: [IP.ADDRESS]

Hi @RaresAil,
yeah I have the similar Tapo doorbell: https://www.tapo.com/uk/product/smart-camera/tapo-d230s1/ with tapo hub and tried adding it through this plugin using IP address of Hub (as doorbell doesn't doesn't have an IP address) and i get similar error also.
[10/14/2023, 3:46:16 PM] [Tapo] Try for <IP_ADDRESS> : 17/20
[10/14/2023, 3:50:36 PM] [Tapo] Error sending command: deviceInfo AxiosError: connect ETIMEDOUT <IP_ADDRESS>:80
    at Function.AxiosError.from (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/core/AxiosError.js:89:14)
    at RedirectableRequest.handleRequestError (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/axios/lib/adapters/http.js:593:25)
    at RedirectableRequest.emit (node:events:513:28)
    at ClientRequest.eventHandlers.<computed> (/homebridge/node_modules/homebridge-tp-link-tapo/node_modules/follow-redirects/index.js:14:24)
    at ClientRequest.emit (node:events:513:28)
    at Socket.socketErrorListener (node:_http_client:502:9)
    at Socket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  port: 80,
  address: '<IP_ADDRESS>',
  syscall: 'connect',
  code: 'ETIMEDOUT',
  errno: -110,
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: 'http',
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      'User-Agent': 'axios/1.5.0',
      'Content-Length': '352',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    httpAgent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      protocol: 'http:',
      options: [Object: null prototype],
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype],
      freeSockets: [Object: null prototype] {},
      keepAliveMsecs: 1000,
      keepAlive: false,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      [Symbol(kCapture)]: false
    },
    method: 'post',
    url: 'http://<IP_ADDRESS>/app',
    data: '{"method":"handshake","params":{"key":"-----BEGIN PUBLIC KEY-----\\n[THE PUBLIC KEY]\\n-----END PUBLIC KEY-----\\n"},"requestTimeMils":1697294905561}'
  },
  request: <ref *1> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      constructed: true,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false,
      closeEmitted: false,
      [Symbol(kOnFinished)]: []
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError],
      socket: [Function: handleRequestSocket]
    },
    _eventsCount: 3,
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'http:',
      path: '/app',
      method: 'POST',
      headers: [Object: null prototype],
      agents: [Object],
      auth: undefined,
      family: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: [Object],
      hostname: '<IP_ADDRESS>',
      port: '',
      agent: [Agent],
      nativeProtocols: [Object],
      pathname: '/app'
    },
    _ended: false,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 352,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: '352',
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      _closed: false,
      socket: [Socket],
      _header: 'POST /app HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'User-Agent: axios/1.5.0\r\n' +
        'Content-Length: 352\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: <IP_ADDRESS>\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/app',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: '<IP_ADDRESS>',
      protocol: 'http:',
      _redirectable: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype],
      [Symbol(errored)]: null,
      [Symbol(kUniqueHeaders)]: null
    },
    _currentUrl: 'http://<IP_ADDRESS>/app',
    [Symbol(kCapture)]: false
  },
  cause: Error: connect ETIMEDOUT <IP_ADDRESS>:80
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
    errno: -110,
    code: 'ETIMEDOUT',
    syscall: 'connect',
    address: '<IP_ADDRESS>',
    port: 80
  }
}
[10/14/2023, 3:50:36 PM] [Tapo] Failed to get info about: <IP_ADDRESS>
[10/14/2023, 3:50:36 PM] [Tapo] Retry to connect in 10s : <IP_ADDRESS>

Just bumping this to see if you had a chance to look into it @RaresAil 😄

would love to see this working too

I have added the Tapo H200 hub to home assistant but can't add the D230.


Add Google Analytics tracking

Nice. Are we ripping Posthog and Matomo out as well?

Yep, that'd be next stage @plaindocs!

@scopegate @lachlanhardy is this good to merge?

Sure. I thought I approved this already?
On Thu, May 27, 2021 at 8:45 PM, Tim Lucas @.***> wrote:
@scopegate [https://github.com/scopegate] @lachlanhardy [https://github.com/lachlanhardy] is this good to merge?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub [https://github.com/buildkite/docs/pull/1047#issuecomment-849530993] , or unsubscribe [https://github.com/notifications/unsubscribe-auth/AAAA4YSJBMDOQ3ZVYBALNI3TPYPFPANCNFSM45GGKSBQ] .


Update reference to gokit package dependency

Description
This gokit package is being imported from kumarabd.
Expected Behavior
The gokit package should be imported from layer5io
Implementation
After changing the location of the package import, build the project to ensure it compiles correctly (no issues with new package reference)

Hey @leecalcote  I'm interested in this


Protein Family Sorter on beta appears not to be functioning

The filter loads, but never the table.

Only had public genomes in the group.

It is working now.


Windows: Allow a no-reexec option for importLayer

Signed-off-by: John Howard<EMAIL_ADDRESS>@jstarks This PR allows an environment variable to control whether the Windows graphdriver performs the importLayer operation through a re-exec call (default), or in-process. This is to aide debugging only. If the environment variable is set, the daemon logs a warning during startup

Update pushed.

Rebased

LGTM

Rebased. Ping @thaJeztah

LGTM

LGTM


Auction Contract - stuck before EndAuction

If the highest bidder does not call and pay for EndAuction, NFT is stuck and the seller loses it.
After a certain amount of time, it need an additional feature that allows seller to cancel an auction.

After a certain amount of time, it need an additional feature that allows seller to cancel an auction.

Or, change the "bid" that it needs funds for the bid and return it to the bidder if a higher bid comes. This change enables the seller also can call the "end auction".


Cannot go get imageproxy

When I try to get imageproxy the following error occurs:
$ go get willnorris.com/go/imageproxy/cmd/imageproxy
# google.golang.org/api/option
/go/src/google.golang.org/api/option/option.go:153:14: undefined: grpc.RoundRobin
/go/src/google.golang.org/api/option/option.go:154:42: undefined: grpc.WithBalancer
The command '/bin/sh -c go get willnorris.com/go/imageproxy/cmd/imageproxy' returned a non-zero code: 2

This occurs with GoLang 1.12 and 1.13.
I am not familiar enough with Go to know how to debug or troubleshoot this issue, but it does seem to be specific to an external dependency and not imageproxy itself.
There is an existing issue at the google-api-go-client repo - https://github.com/googleapis/google-api-go-client/issues/441
It looks like then the issue is imageproxy relying on deprecated experimental APIs?

Looks like the issue has been addressed by the grpc team - https://github.com/googleapis/google-api-go-client/issues/441#issuecomment-573873733

Thanks to the grpc team, this should now be working if you are pulling head. We plan to address this issue quickly to no longer rely on the code that will be removed again.


Add articles from kevinmmartins

@atapas could you help me with the review?

@kevinmmartins You do not need to create PR for the low-code and no-code contributions anymore now. Please check this communication here and follow the same(especially the ground rules). We will pick the contributions from there. Thanks!
https://www.showwcase.com/opensource