Could not load file or assembly 'Simple.OData.Client.V3.Adapter, Culture=neutral, PublicKeyToken=null'

Hi ,
I am using Simple.OData.Client package 5.2.2 . I am using the API FindEntriesAsync and getting an error at runtime .
When I looked at the issue ,  when i build the dependent dll's for my code the Simple.OData.Client.V3.Adapter was generted with a version <IP_ADDRESS> but at run time when i used FinEntriedAsync internally the Dll that is trying to load is not having the version number in it .
So as a result I am getting the following error :
Unable to load OData adapter from assembly Simple.OData.Client.V3.Adapter ---> System.IO.FileNotFoundException: Could not load file or assembly 'Simple.OData.Client.V3.Adapter, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. ---> System.IO.FileNotFoundException: Could not load the specified file.
at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingEvent(AssemblyName assemblyName)
at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingResolvingEvent(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName)
--- End of inner exception stack trace ---
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, IntPtr ptrLoadContextBinder)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, IntPtr ptrLoadContextBinder)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Simple.OData.Client.AdapterFactory.LoadAdapterAssembly(String modelAdapterAssemblyName)
at Simple.OData.Client.AdapterFactory.LoadModelAdapter(String modelAdapterAssemblyName, String modelAdapterTypeName, Object[] ctorParams)
--- End of inner exception stack trace ---
at Simple.OData.Client.AdapterFactory.LoadModelAdapter(String modelAdapterAssemblyName, String modelAdapterTypeName, Object[] ctorParams)
at Simple.OData.Client.AdapterFactory.CreateAdapter(String metadataString)
at Simple.OData.Client.MetadataCache..ctor(String key, String metadataDocument)
at Simple.OData.Client.Session.<>c__DisplayClass14_0.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Simple.OData.Client.MetadataCache.GetOrAddAsync(String key, Func`2 valueFactory)
at Simple.OData.Client.Session.ResolveAdapterAsync(CancellationToken cancellationToken)
at Simple.OData.Client.ODataClient.FindEntriesAsync(FluentCommand command, Boolean scalarResult, ODataFeedAnnotations annotations, CancellationToken cancellationToken)
I am not sure why the actual dll that is generated having a version <IP_ADDRESS> and the run time reflection is looking for a dll with out the version ? Any ideas how to resolve this issue and is it possible to generate the correct version number instead of <IP_ADDRESS>
Thanks,
G.

Hi Guys ,
Any help in this regard or any suggestions ?
Thanks,
G.

I am not sure I understand what do you mean by generated version <IP_ADDRESS>. The library DLLs have the non-zero version. Next, can you check that the actual DLL file is present in the binary folder of your application? Begin with checking this, make sure all referenced and dependent DLLs are there and check if the application works. Then next step would be to find out why they were missing.

Hi ,
I will give you more details related to this error .
Step 1 : I used the simple.odata.clinet 5.2.2 package from nuget and published the project . When I published the project , I can see in the published folders all the dll's required including Simple Odata dll's
Step 2 :
Our application/framework is loading all the dll's , that means we loaded all the dll's that were published in  Step 1 .  Once we loaded all the dll's for example if i look at the full name of Simple Odata V3 Adapter Dll it is "Simple.OData.Client.V3.Adapter, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null"
Step 3 :
Now at run time i am trying to get a key using query.findentryasync method , when i use the query.findentry async method simple odata internally trying to load "private const string AdapterV3AssemblyName = "Simple.OData.Client.V3.Adapter" in class Simple.OData.Client.AdapterFactory" when this assembly is getting loaded , our framework is using
private Assembly Assembly_Resolving(AssemblyLoadContext arg1, AssemblyName arg2)
{
return objectAssemblies.FirstOrDefault(a => a.FullName == arg2.FullName && a.GetName().Version == arg2.Version);
}
So what our framework is trying to do is : from the loaded dll's ( with version <IP_ADDRESS> )  from Step 2 trying to match the one simple odata client is loading from Step 3 ( Simple.OData.Client.V3.Adapter). As the Step 3 dll doesnt have any version and the loaded dll has a version v <IP_ADDRESS> , our framework is throwing an error .
If I modify
private const string AdapterV3AssemblyName = "Simple.OData.Client.V3.Adapter, Version=<IP_ADDRESS> " in class Simple.OData.Client.AdapterFactory" it would work fine as it matches to the right dll from the published dll from step 1 .
If still not understood , please let me know.
Thanks,
G.

Hmm, I will investigate this further and come back to you.

I have now released the package 5.5.0-beta2 which should fix this issue.


Issue #463: in transport/wsn, added suspendRead in WsCloseFilter.filt…

…erClose for max size exceeded case to make sure we don't try to decode the remaining data (which results in lots of protocol decoder exceptions). Enhanced LimitsMaxSizeDefaultIT to check log messages to ensure there are no longer other protocol decoder exceptions being thrown. Also updated all wsn k3po dependencies to inherit from k3po.version in root pom.

@Anisotrop Please review these changes emerge if you think they're okay. They address the issue you raised in https://github.com/kaazing/gateway/pull/445

@Anisotrop I just added a fix to WsxAcceptorLoggingIT to fix an occasional failure (not related to this PR but it prevented the build of this PR from passing)

Merging as per @cmebarrow comments.


[BUG] setting environment "IFCONFIG_FORMAT" causes IPv4 gateway not detected

I normally have
IFCONFIG_FORMAT=inet:cidr,inet6:cidr

to show interface configuration in those formats
this means that the pot network.sh fails to identify the bridge
since ifconfig gives
inet <IP_ADDRESS>/10 broadcast <IP_ADDRESS>

but the script is expecting: i.e., without the "/10" cidr suffix
inet <IP_ADDRESS> netmask 0xffc00000 broadcast <IP_ADDRESS>

my workaround
I added this to top of network.sh
# ensure ifconfig produces expected output
IFCONFIG_FORMAT=addr:default
export IFCONFIG_FORMAT

Now it runs properly

Please try this patch to pot:
diff --git a/bin/pot b/bin/pot
index 15e2c58..135adab 100755
--- a/bin/pot
+++ b/bin/pot
@@ -28,6 +28,9 @@
 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+# Force ifconfig into expected format
+export IFCONFIG_FORMAT=addr:default
+
 # Environment initialization and initial checks

 _POT_VERSION=0.11.2

I removed my original changes and applied the patch.  It works well.
Thanks


RollaDice Game created in python

Description
Created a Rolling Dice game where two players throw dice and the one with higher number on top wins the game. The Game continues for a predefined number of rounds and whoever wins more rounds wins the game. In the end final score gets appended into a txt file.
Fixes #78
Type of change
Choosing one or more options from the following as per the nature of your Pull request.

NOTE: These boxes can be checked using [X]

[ ] Bug fix (non-breaking change which fixes an issue)

[X] New feature (non-breaking change which adds functionality)

[X] Documentation Update

Checklist:
Please tick all the boxes that are fulfilled by your Pull Request.

[X] I have named my files and folder, according to this project's guidelines.
[X] My code follows the style guidelines of this project.
[X] My Pull Request has a descriptive title. (not a vague title like Update index.md)
[X] I have commented on my code, particularly in hard-to-understand areas.
[X] I have created a helpful and easy to understand README.md, according to the given README_TEMPLATE.
[ ] I have included a requirements.txt file (if external libraries are required.)
[X] My changes do not produce any warnings.
[X] I have added a working sample/screenshot of the script.

@all-contributors please add @Sahil-k1509  for code


Random Application Lockdown on ECS Fargate with Langchain and FastAPI

System Info
Operating system/architecture:
Linux/X86_64
CPU | Memory
8 vCPU | 16 GB
Platform version
1.4.0
Launch type
FARGATE
Project libraries:
snowflake-sqlalchemy==1.4.6
python-dotenv==0.21.0
openai==0.27.2
langchain==0.0.336
pandas==2.0.2
boto3==1.26.144
colorama==0.4.6
fastapi==0.100.1
pydantic~=1.10.8
pytest~=7.1.2
uvicorn~=0.17.6
cassio==0.1.3
sentry-sdk==1.29.2
langsmith==0.0.66
numpy==1.24.3
SQLAlchemy==1.4.46
psycopg2-binary==2.9.7
tiktoken==0.4.0
httpx==0.24.1
unidecode==1.3.7
transformers==4.28.0
transformers[torch]
tensorflow==2.12.1
keras==2.12.0
Python version of the project:
python:3.10-slim-bullseye
Who can help?
No response
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[X] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[X] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
It's quite challenging to replicate the error as it appears to be rather random. After a few requests, FastAPI stops responding following the OPTIONS query of the endpoint. This issue seems to be attributable to one of the libraries in use. I observed this error after a code refactoring in the project, moving from legacy chains to chains with LCEL. Since this refactoring, the ECS system has exhibited peculiar behavior. Extensive debugging has been conducted throughout the codebase, yet there are no indications of the error's origin. It's worth noting that everything functions flawlessly in local emulation, with no occurrence of any unusual errors. The problem arises when the code is deployed to the ECS Fargate instance, and I want to emphasize that this issue did not exist before the aforementioned changes were made.

Expected behavior
I need someone to help me with new ways to debug this extremely rare bug, to give me ideas on what to do, what to show from my machine, what can be done, or if it's some incompatibility between the libraries. I haven't been able to pinpoint the specific point where the program stops, and it's proving to be very challenging.

We meticulously implemented logging throughout our codebase, diligently tracing each step of the program. However, the logs haven't revealed any discernible faults. That's precisely why I've brought the issue into the collective gaze for additional insights.

Similar sentiments apply to our debugging efforts within the ECS environment. The prints consistently exhibit the same behavior, with no anomalous patterns. It's perplexing because the program sporadically halts, seemingly at random intervals during user interactions.

For this point, I plan to isolate the issue by crafting a minimal application that mimics the conditions leading to the error. Once I've replicated it, I'll share the distilled version with you for further analysis.

AWS Fargate's resource utilization appears to be well within normal bounds.

As for connectivity concerns, the likelihood seems minimal. Given that our application resides within the AWS infrastructure, network-related issues are less probable.

Notably, the endpoint in question isn't asynchronous; we're simply employing an invoke.

Have you ever found a solution to this problem?
I am experiencing the same and am currently suspecting the ThreadPoolExecutor used by both FastAPI / Starlette and the async Langchain methods. Upgrading from Python 3.10 to 3.12 (where some ThreadPoolExecutor issues / deadlocks have been solved) did not solve the issue either.
Even though the sync batch methods also uses a ThreadPoolExecutor, it does not use the default one used e.g. by the async invoke etc. (at least not in 0.1.4), so I am not quite sure how this could relate, even though I am not an expert in Python threading.
I would appreciate any hints or solutions. :)

@radiachkik
We were unable to find the root cause of the problem; it seemed to be OpenAI timeouts, but in the end, we couldn't find the root issue. It's very hard to debug that.
Our decision was, instead of having the entire application on an ECS, to make a backend on ECS and put everything related to chains or LLMS stuff on lambda infrastructure. So, that was the only way to make the entire app work.

Hey @Santiagowwi . Thank you for your response!
In our case, the problem was caused by us not setting a timeout for the Redis client we used as the cache for LLM calls and the embeddings. After setting a timeout and switching to a more robust Redis instance, the problem seems to be solved.
My initial guess therefore was not accurate, as it seems like the issue was not caused by the threading mechanism. Using the async methods that in term use the threads just made this problem harder to debug.


Hide warnings about missing localizations

Is it possible to not show warnings about missing translations that are appearing in the console when webpack is building a project?
    WARNING in ./src/someFile.js
    Missing localization: [Paused]
    Missing localization: [Unpaused]

Or maybe it is possible to do it on webpack level not on this plugin level?

@nosovsh, now you can use the hideMessage option for your goal: https://github.com/webpack/i18n-webpack-plugin#options
Thanks to @zhaoshengjun for the PR.


Enable needed features of winapi

Previously, softbuffer wouldn't successfully build on its own on Windows; the examples only worked because dependencies happened to enable the needed features.

Thanks for the patch! Sorry for the delay. I had some employment contract issues with FOSS contributions, and they are now resolved.


[SMALLFIX] Recover HelpCommandIntegrationTest

What changes are proposed in this pull request?
HelpCommandIntegrationTest works now.
Why are the changes needed?
Improve code quality.
Does this PR introduce any user facing changes?
No.

alluxio-bot, merge this please


Some checks added for RRULE BYMONTH in Recur->validate()

What do you think, should BYMONTH <1 be repaired to 1, and BYMONTH > 12 repaired to 12?
Or should the value (if there are multiple months) or the whole BYMONTH be removed if <1 or >12?

I think in cases like that there's no reasonable assumption we can make about what the client actually wanted to do. So I would be just as happy with no repair rule at all and just always let the server throw an error. Ideally these clients need to be fixed.


Doc: non-existing method disableUrlEncoding

The document says that we can use .disableUrlEncoding,

If you know that your urls are already properly encoded, you can disable this feature with .disableUrlEncoding.
http://gatling.io/docs/2.1.2/http/http_protocol.html

but we can't compile the following file:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class BasicSimulation extends Simulation {
  val httpConf = http.baseURL("http://example.com").disableUrlEncoding
  val scn = scenario("Scenario Name").exec(http("request_1").get("/"))
  setUp(scn.inject(atOnceUsers(1)).protocols(httpConf))
}

Here is the error message:

value disableUrlEncoding is not a member of io.gatling.http.config.HttpProtocolBuilder

Might want to update the docs to reflect this btw.

It is documented: http://gatling.io/docs/2.1.3/http/http_protocol.html#urlencoding

Actually, I realize the proper name should indeed be disableUrlEncoding.
Will revert back.
Sorry for that.


LowerToUKernels should create a codegen fallback when the ukernel would be slow.

Ukernels do not expose whether they have fast code to handle a given case. They always succeed, potentially falling back on a slow generic tile function that can be 100x slower than optimized code, because on top of being scalar code, it is dynamic-tile-size code since it is a single function that has to adapt to any tile size.
This has been run into multiple times recently e.g. https://github.com/openxla/iree/issues/15504, and is the topic of point 2. in @dcaballe's comment in https://github.com/openxla/iree/issues/15760#issuecomment-1838671051.
I have considered a few options in e.g. https://github.com/openxla/iree/issues/15504#issuecomment-1808370171 but after an offline discussion with @benvanik last week, this is what we are planning to do:

Let ukernels expose whether they have fast code for a given case.
Let LowerToUKernels lower ops to something of the form (pseudocode)

  scf.if (have_fast_ukernel_code_for_this_case()) {
    ukernel op...
} else {
    non-ukernel op...
}

(plus something to avoid this pattern recursing infinitely).
Pro: we'll never run into slow ukernel fallback code again. The fallback will be codegen.
Con: we'll always compile both code paths down to LLVM IR (though one will be DCE'd in late (post linking) LLVM IR optimization passes). This has two downsides:

More compilation time. However, this is in the part of codegen that is well parallelized, not the current serial bottleneck on object-code generation.
Ukernels won't anymore be a way to avoid compilation issues with the normal codegen path. But since we want the normal codegen path to work, that's not necessarily a bad thing.

This is in line with a project that @MaheshRavishankar and I had discussed. We want to provide the feature similar to this. We want to be able to generate multiple executables for a single dispatch; pick up the proper kernel with simple checks. We have few progress on it today -- we split the lowering strategy selection logic out from the whole dynamic pipeline. There are ambiguities about how it would look like on codegen and runtime sides. If this becomes a priority, I can study and start a design maybe early 2024.

This is more about doing it at the lower level - which is required for some scenarios and really what we should be focusing on.
Wherever possible we want to avoid:
host:
  if (some device feature)
     dispatch(variant_a)
        do thing specialized for device feature
  else if (some other device feature)
     dispatch(variant_b)
        do thing specialized for other device feature

and instead want:
host:
  dispatch(variant_ab)
     if (some device feature)
        do thing specialized for device feature
     else if (some other device feature)
        do thing specialized for other device feature

That is to say: trying to do anything that requires different host behavior should raise a red flag and be very carefully evaluated. Unless you can rationalize making an entire copy of the .so we generate (spending the time to compile it, embedding it in vmfbs, and deploying it to all users) then host selection changes are generally out. Doing things within the dispatches is far easier to build/maintain and far more flexible and is the default direction to take.
Host-level changes are for big things where all/a large number of all dispatches in the program change - for example, different CPU architectures - and is accomplished via hal.executable.condition. It should be extremely rare especially on CPU. Device-level changes are done via specialization constants (hal.executable.constant.block) and the various feature queries we have within CPU dispatches (DispatchABI::loadProcessorID, DispatchABI::loadProcessorData, etc).
Before you build anything we should all sync up and ensure it's either using the infra we have or in this direction.

@hanhanW I think what @benvanik suggested is what I was trying to describe. Sorry if that didnt come across clearly (thanks @benvanik for the nice summary!). So this would be pure codegen side only changes, but allows us to generalize to target a wider range of computation within the same dispatch...

Thanks Ben! You already give me a rough answer about how it should look like on host side and device side; it matches what I prefer! I'm not going to build anything before we discuss in a broader bandwidth and have some agreements.  I just wanted to point out that we should escalate it from LowerToUKernels to generating executables level; I can help study it if it becomes a priority and no one have cycles for it. My plate is full now, so I can only offer help to kick it start in 2024.

I had wrong understanding about slow fallback. I thought that we had an ukernel where the implementation is scalars. IIUC, what's happening is that we fallback to scalar codegen pipeline when ukernels are not available.
https://github.com/openxla/iree/blob/0b0476624d554bda0e7837c516de837a4f457b92/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp#L529-L543
The tiling and vectorization do not happen because they are excluded. Then we bufferize it and convert linalg ops to loops in addLowerToLLVMPasses.
https://github.com/openxla/iree/blob/0b0476624d554bda0e7837c516de837a4f457b92/compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp#L620-L637
One short fix is that we can "improve" the current fallback. We can apply tiling and vectorization passes unconditionally after LowerToUKernels pass. It does not hurt anything. If mmt4d ops are converted to ukernels, they are nop. If it does not pick up any ukernels, we still can tile and vectorize the ops.
 if (enableMicrokernels) {
   nestedModulePM.addNestedPass<func::FuncOp>(
       createDecomposeBatchMmt4DOpsPass());
   nestedModulePM.addPass(
       createCPULowerToUKernelsPass(clSkipIntermediateRoundings));
 }
 nestedModulePM.addNestedPass<func::FuncOp>(createLLVMCPUTileAndFusePass(
     static_cast<int64_t>(tilingConfig.getVectorCommonParallelLevel())));
 nestedModulePM.addNestedPass<func::FuncOp>(createLLVMCPUTilePass(
     static_cast<int64_t>(tilingConfig.getVectorReductionLevel())));
 nestedModulePM.addNestedPass<func::FuncOp>(
     createGenericVectorizationPass());
 nestedModulePM.addNestedPass<func::FuncOp>(
     createHoistRedundantVectorTransfersPass());

Has this been fixed by #15883 ?

Circling back now that I have the context switched back in.
#15883 addresses part of this, but isn't a complete solution by itself.
In cases where the lowering-to-ukernel fails, #15883 is the full solution.
The remaining problem is what this Issue's original description was about: the case where the lowering-to-ukernel succeeds, and then at runtime the ukernel happens to use slow generic code. There are a few reasons why that would happen. The availability of architecture-specific optimized code depends on a number of factor: not just element types, but also tile shapes, target architecture, and target CPU feature. So far, of these factors, the only one that is fully accounted for in the compiler-side lowering-to-ukernel logic is the element types. Reflecting all of these factors in this compiler logic would be a very fragile duplication of logic, bound to diverge i.e. regress. That's why this Issue description originally called for some additional ukernel entry point returning a ground-truth value for "would this actually be fast". Having swapped all this context back in now, I think that we should really do this now.
The change in #15883 will be really helpful with that now. I hadn't originally thought of that aspect, but if I had just followed what I originally described above, the codegen fallback would have been slow. #15883 ensures that the codegen fallback will be fast, when we have it.

I made a prototype implementing the idea in the original PR description here. It doesn't work as-is. I discussed it with @MaheshRavishankar who kindly brought me up to speed with the reasons why it just won't work. It's all in https://gist.github.com/bjacob/80ab8936c2416cdd41516a59f001f8b6

so sounds like a nosideeffects query function called at the top of the function (outside all the loops) and switching the entire loop nest is probably the way to go? worst case, you do:
func @entry(...) {
  %have_ukernel = iree_codegen.ukernel.is_supported "iree_uk_mmt4d" <whatever metadata you need>
  scf.if %have_ukernel {
    call @using_ukernel(...)
  } else {
    call @not_using_ukernel(...)
  }
}
func private @using_ukernel(...) ...
func private @not_using_ukernel(...) ...

:exploding_head: and more discussion here: https://discord.com/channels/689900678990135345/689906000043573354/1208149147220316210


correct way to judge if a url is response image.

bool isImage(String path) =>   imageFormats.contains(extension(path).toLowerCase());

I think we should not using url's extension to judge if it's a image url, in fact we should use content-Type,
eg:
Content-Type: image/jpeg

for example:
https://login.weixin.qq.com/qrcode/AdxQaR_xpA==

response:

hope can fix it soon.
Thanks.


Version of slicechrs_FildeshX() that doesn't introduce a NUL byte

[x] until_chars_FildeshX()
[x] while_chars_FildeshX()
[x] Benchmark!
[ ] Verify that slicespan_FildeshX() works with nested slices. (Probably not)
[x] strdup_FildeshX(in, alloc)

It would be nice to match the performance of strpn and strcspn. Should be easy enough with SIMD. Just some shifts and a shuffle followed by ffs.
Since we're representing a set of bytes using 256 presence bits, we might as well assume 256-bit for the shuffle __m256i _mm256_shuffle_epi8(__m256i a, __m256i b) aka vpshufb.

Got it working and fast, at least on x86. It wasn't that easy. Not too difficult though.


connection handshake fixes

When situations like network latency occur while using a proxy, the handshake process may take a very long time. Since the context is independent, the timeout process cannot be controlled with context.

@batuzyn thank you


Jewish Calendar - not returning times, or weekly portion

Home Assistant release with the issue:
0.80.1

Last working Home Assistant release (if known):
N/A
Operating environment (Hass.io/Docker/Windows/etc.):
Docker

Component/platform:
Jewish Calendar

Description of problem:
The following sensors don't give any results, and don't even show in states:
mga_end_shma
first_starts
Additionally, weekly_portion returns 'פרשת none'.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
  - platform: jewish_calendar
    language: hebrew
    diaspora: True
    latitude: 41.111207
    longitude: -74.068475
    sensors:
      - date
      - weekly_portion
      - holiday_name
      - mga_end_shma
      - first_stars

Traceback (if applicable):
jewish_calendar: Error on device update!

Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity_platform.py", line 251, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/app/homeassistant/helpers/entity.py", line 347, in async_device_update
    await self.async_update()
  File "/usr/src/app/homeassistant/components/sensor/jewish_calendar.py", line 137, in async_update
    timezone=self.timezone, hebrew=self._hebrew).zmanim
  File "/usr/local/lib/python3.6/site-packages/hdate/zmanim.py", line 38, in __init__
    self.zmanim = self.get_zmanim()
  File "/usr/local/lib/python3.6/site-packages/hdate/zmanim.py", line 56, in get_zmanim
    zmanim_dict[zman] = self.utc_minute_timezone(zmanim_list[zman])
  File "/usr/local/lib/python3.6/site-packages/hdate/zmanim.py", line 43, in utc_minute_timezone
    to_zone = tz.gettz(self.timezone)
  File "/usr/local/lib/python3.6/site-packages/dateutil/tz/tz.py", line 1539, in __call__
    rv = self.nocache(name=name)
  File "/usr/local/lib/python3.6/site-packages/dateutil/tz/tz.py", line 1580, in nocache
    if name.startswith(":"):
AttributeError: 'America/New_York' object has no attribute 'startswith'

Additional information:

@tsvi letting you know...

weekly_portion has already been fixed in #17447
Should be part of the 0.81 release.
I'll take a look at the zmanim issue hopefully today.


library issue functions are not defined

Tried copying the libraries as per tutorial suggested but still having problems in recognizing functions related to those libraries, tried updating and also tried previous versions for libraries and processing itself, any help will b appreciated.

hey @hassansyedahmed, what would you like to do with the Processing? we now offer a standalone app http://openbci.com/index.php/downloads so you don't need to have Processing to run it


 mappings

How about providing all normal mode editing mappings as <plug>(vim-latex) mappings?
For example, dse would be mapped to <plug>(vim-latex-dse).
The advantage would be set they can be made repeatable by the repeat.vim plugin out of the box, for example by
nnoremap <plug>(vim-latex-dse) :call latex#change#env('')<cr>\|silent! call repeat#set('<plug>(vim-latex-dse)',v:count)<CR>

I was actually thinking about this recently. I didn't know about the repeat possibility, which I really like.
I've also realized that I think I like better to organize all mappings in the same place. I am not sure about this though. I was thinking to perhaps make a "module" like autoload/latex/mappings.vim, or even autoload/latex/interface.vim. The latter could also include commands. Do you have any thoughts on this yourself?

The naming mappings makes it easier to locate them when looking at the source.
So perhaps commands and mappings better than mingling them into a single interface file, rather in a folder of the same name.
That said, my philosophy is that the commands such as starting compilation, displaying errors are best handled by the command line but those editing text deserve mappings. Though every map should be a <plug>map.

I am not sure I understood your philosophy: Did you mean you don't want functionality in vim to start compilation, but that you rather do that separately in the command line? In that case, I partly agree that this is a sane philosophy, but personally I really enjoy the simplicity of controlling the compilation and displaying errors inside vim.
Anyways, I think the following mapping-scheme makes sense:

Each "module" file defines their own <plug>... mappings much like the mappings are defined today.
2.. I'll keep command definitions the way it is today.
The mapping of <plug>... expressions is then done in a new mappings.vim file, which will allow to wrap over repeat.vim.

Do you agree?

Anyways, I think the following mapping-scheme makes sense:

Each "module" file defines their own ... mappings much like the mappings are defined today.
2.. I'll keep command definitions the way it is today.
The mapping of ... expressions is then done in a new mappings.vim file, which will allow to > wrap over repeat.vim.

Sounds good. By modules you mean the files found in
https://github.com/lervag/vim-latex/tree/master/autoload/latex ?

I am not sure I understood your philosophy: Did you mean you don't want functionality in vim to start compilation, but that you rather do that separately in the command line?

Yes, I reverted to Command Line abbreviations to start compilation (toggle, singleshot) but realized that I use mappings for forward and reverse search. So at the end its perhaps only a question of frequency. Using default mappings for text editing functions but commands for those controlling latexmk would be a good compromise but no strong opinionss on it. The way it is is just fine but know that additional <plug> mappings are coming, this questioin resurged.

Yes, in lack of a better word I call the files in autoload/latex modules.

I've just pushed an updated to use <plug> for all mappings (https://github.com/lervag/vim-latex/commit/864f4d3a2d2911b6b145e7b66cd8e3b51a49aa31). The repeat functionality is not added yet.

I think this solves the issue as well, or did the issue also include the repeat coupling?

Hmm.. I started the issue with the idea that the <plug> mappings include the !silent repeat... appendix so that the vim-latex user get the repeatability for free if he uses those.
On a sidenote, I think at some points the mappings in mappings.vim are off by one, see
+ nnoremap <buffer> dse <plug>VimLatexDeleteEnv
+ nnoremap <buffer> cse <plug>VimLatexDeleteCmd
+ nnoremap <buffer> dsc <plug>VimLatexChangeEnv

Repeatiability is just a matter of appending
\|silent! call repeat#set('<plug>MAPPING',v:count)<CR>

to all MAPPING.

Thanks, I fixed the bug.
I'll add the repeat later today or this weekend.

You could try something like
  redir => mappings
    silent! smap
  redir END

  " List of all printable characters. See
  " NEOSNIPPET: /autoload/neosnippet/mappings.vim
  for MAP in map(filter(split(mappings, '\n'),
        \ "v:val !~# '^s' && v:val !~ '^\\a*\\s*<plug>VimLatex'"),
        \ "matchstr(v:val, '^\\a*\\s*\\zs\\S\\+')")
   execute nmap `<plug>repeatableMAP MAP:silent! call repeat#set('<plug>MAP',v:count)<CR>
  endfor
endfunction

Interesting. I'm curious, perhaps it is better to just manually bookkeep which of the mappings require a repeatable mapping?
And is there any reason to create two versions of each repeatable map?

Yep. Probably it's saner to just bookkeep. I only added it in there to avoid making the command invalid by recursion.
 Could you either write out a full example, or perhaps open a pull request?

To be more specific: Your example based on neosnippet does not work. I've fixed a couple of minor bugs, but still... and I don't understand how the last example should be. For instance, in <plug>repMAP, is MAP supposed to be understood as any of my mappings, or is it a variable as in the above for loop, or what?

Well, first bookkeeping is the better solution than the neosnippet script that I thought could somehow be of help if all mappings starting with <plug>VimLatexChange for example are to be made repeatable.
In conjunction, the now obsolete idea amounted to
  redir => mappings
    silent! smap
  redir END

  for MAP in map

   execute 'nnoremap <script> <SID> '.MAP.'repeat ':silent! call repeat#set("<plug>'.MAP",v:count)<CR>'
   execute 'nmap <plug>'.MAP.'Repeatable'.' <plug>'.MAP'.'<SID>'.MAP.'repeat'
  endfor

Here map is supposed to be a list of appendixes VimLatex.. following <plug>.

Ok, so now I've added the following to change.vim:
  " Create repeatable mappings
  let s:repeatable_mappings = [
        \ 'VimLatexDeleteEnv',
        \ 'VimLatexDeleteCmd',
        \ 'VimLatexChangeEnv',
        \ 'VimLatexChangeCmd',
        \ 'VimLatexToggleEnvStar',
        \ 'VimLatexToggleDelim',
        \ ]
  for MAP in s:repeatable_mappings
    execute 'nmap <plug>' . MAP . 'Repeat' . ' <plug>' . MAP
          \. ':silent! call repeat#set(''\<plug>' . MAP . ''', v:count)<cr>'
  endfor

I think these are the only mappings that (at the moment) should be repeatable. The mappings are created, but it doesn't work. :\

Hmmm.. first off better use the script map workaround
execute 'nnoremap <script> <SID>'.MAP.'repeat ':silent! call repeat#set("<plug>'.MAP.'",v:count)<CR>'

because something in
:silent! call repeat#set(''\<plug>' . MAP . ''', v:count)<cr>

could be remapped.

I managed to make it work, although you are right, something gets remapped.

For example, I swapped : and ,.

Ok. Suggestion
execute  'nnoremap <script> <SID>'.MAP.'Repeat ':silent! call repeat#set("<plug>'.MAP.'",v:count)<CR>'
 execute 'nmap <plug>' . MAP . 'Repeat' . ' <plug>' . MAP
          \. '<SID>MapRepeat'

I found a slightly different way to do this where instead I call the repeat#set function at the end of my own functions. This seems to work very well here, at least.


Add isspace for bytes and byte array

Implementation of "isspace()" builtin method for bytes with 5 tests cases on "test_bytes.py";
Implementation of "isspace()" builtin method for byte array with 5 tests cases on "test_bytearray.py";

@eliasdorneles I added support to \t, \x0b and \f, but for the cases bellow shows the following error AssertionError: EOL while scanning string literal. Do you know how to fix this?
print(b' \n'.isspace())
print(b' \r'.isspace())


Creates github action for CI

Signed-off-by: Wyatt Davis<EMAIL_ADDRESS>

Oops, accidental PR


Nothing happens when opening the website

I'm currently using a Google Pixel 8 Pro and I'm trying to use the site, the site will open and load. However once finished loading, it will look like the following picture, and when I press of the various parts of the site, namely the 3 lines for the menu, and the "Please load a save file" areas; nothing happens.

It seems to be working for me. Maybe your network connection wasn't good? Can you try again?
https://github.com/codemonkey85/PKMDS-Blazor/assets/1414036/a1adfeb1-1168-4c45-9898-062a8345e59e

Also have this issue on iOS 14.6 it just doesn’t do anything nothing is clickable

@idkmanwtt As far as I know iOS 14.6 should be supported (both server-based and WASM). I'm not sure where your issue is coming from. Have you tried refreshing?

Yeah I tried everything, even tried different browsers but none worked. Tried refreshing tried requesting desktop site, cleared cookies and went into a private tab. Nothing :(

@idkmanwtt I realize it's been a while, but FYI, I think I fixed this issue - looks like it may be a compatibility issue with older versions of Safari (<16). Long story short, I disabled a feature used by the framework, and now older browsers should work.


html-pdf converter: Images placed inside options header are not rendering in pdf

I am using html-pdf( v2.1.0) to convert and generate report in pdf format. I tried to have common header in all the pages using header option provide in the plugin by setting the base path like below.
var base = 'file://' + __dirname + '/logos/';
Printing base path
file:///Users/Documents/Sample Project/Code/Web Services/api/logos/
"header": {
          "height": "25mm",
          // "contents": ""
         "contents": "
ACL Report
"
        }

Please help if anyone have faced the same issue.

You must also add the image in your html body like below:

... other content

@boyiFan it is not working

I am using same format but this code is not working

why is use of root base: file:///${path.join(root.get(), 'assets/').replace(//g, '/')}``

Hi All,
I am trying to show image in header but it keeps on showing blank space. I tried using options as well as
I even tried to convert image to base64 and set as
Please help me ASAP.

I was able to get it working doing the following:

Determine your absolute local base file path:

    const cwd = process.cwd();
    const base = `file://${cwd}/public`;

Set the image you want on the header, using the absolute path:

const cwd = process.cwd();
const base = `file://${cwd}/public`;

 const options = {
        format: 'Legal',
        orientation: 'portrait',
        border: '10mm',
        width: '215.9mm',
        height: '355.6mm',
        footer: {
          height: '10mm',
        },
        type: 'pdf',
        timeout: 30000,
        header: {
          height: '25mm',
          contents: `

`,
        },
      };

Add another img tag also using the absolute file path, in the body of the HTML. As @rudiw mentioned, it should be set to display: none; because you need the tag, but you don't want to render the tag.

 `<!DOCTYPE html>

        <title>My page</title>
        <meta charSet="utf8" />
        <meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width" />
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />

${html}

    `

It's important that both img tags have the absolute file path. Or else it did not work for me. I used process.cwd() since the absolute paths will be different between my local build and the server I deploy my work to (two different environments, therefore different locations). So it was important to get that path dynamically.


[Language Text] Update tests

The live pipeline has been failing for some time so this PR updates tests to skip some and update others.
Succeeded live run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=3185077&view=results

API change check
API changes are not detected in this pull request.


How do you launch this?

I'm not very familiar with Gazebo and unsure how to launch it with this plugin.  I don't see an executable in CMakeLists.txt that ros2 run would find or any launch files for ros2 launch.  How do you launch it?
Thanks!

it is a sensor plugin so you need a robot to place this sensor, please take a look at the readme: https://github.com/stm32f303ret6/livox_laser_simulation_RO2#usage
if you need more help let me know

Please I also have some issues with the package. I get the error below and it doesn't not show the lidar in gazebo
load csv file name: /home/george/etpackingrobot_ws/install/ros2_livox_simulation/share/ros2_livox_simulation/scan_mode/mid70.csv
[gzserver-2] cannot convert str:
[gzserver-2] data size:400000


City showing twice in the tracker

Displaying same city two times with different data.

Open this issue at https://github.com/covid19india/covid19india-react


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_e49f2128-41ee-4997-b324-9bacd1a132cd/pull/1 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target_e49f2128-41ee-4997-b324-9bacd1a132cd.git

Docs Build status updates of commit 128a1f8:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-UserAccountBuildPermissionInsufficientError] Owner v-alji no longer has Read permission of the repository https://github.com/opstest2/docs-archive-test-source. It might be due to recent GitHub changes on SSO. Please ask the owner v-alji to logon to Docs Portal https://ops.microsoft.com once again. If it is not the case, please ask anyone of Admin permission of the repo to assign a new owner via Docs Portal https://ops.microsoft.com

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 128a1f8:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-UserAccountBuildPermissionInsufficientError] Owner v-alji no longer has Read permission of the repository https://github.com/opstest2/docs-archive-test-source. It might be due to recent GitHub changes on SSO. Please ask the owner v-alji to logon to Docs Portal https://ops.microsoft.com once again. If it is not the case, please ask anyone of Admin permission of the repo to assign a new owner via Docs Portal https://ops.microsoft.com

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


add examples

I think you need a SHT2x external in the pull request, unless I'm missing it somewhere in the diff...

All examples compile so code is syntactically complete.
Only one of the two examples uses the 2nd i2c bus, and it has the SHT2x external declared.
I will review the code again tomorrow before merging.

Code compiles locally too, review did not show missing things so I will merge today.


Flaky Windows tests on main

I noticed that the Windows unit tests flaked out once or twice on main. Unfortunately, I can't access the runs that failed because I retriggered the tests, but here's a failure I saw on my branch. This issue tracks these failures in case there are more or they become more prevalent.
https://github.com/alteryx/evalml/runs/2337664211

Got it, I see a dask stack trace. Lol the exception message is "Yikes" 😂

Got another one today on a trivial PR. Stack trace looked interesting, dask unit test having to do with the error callback.

The links here reference test_automl_immediate_quit whose flakiness is tracked by #2341 so I will close this issue out!


bosh-lite locked to a broken version of the bosh_cli?

see https://github.com/cloudfoundry-incubator/diego-release/issues/7#issuecomment-51989327

@cppforlife I would very much like to have nothing but the bosh_cli bundled with bosh-lite so that I wouldn't be getting the dreaded Loading the cli took n seconds, consider cleaning your gem environment. How are you handling a lean bosh_cli gem environment?

You can "vagrant ssh" to access a version of bosh that's bundled inside
Also you could use bundler (Gemfile) to fix a version on the host machine.
On Fri, Jul 3, 2015 at 1:43 AM, gerhard<EMAIL_ADDRESS>wrote:

@cppforlife I would very much like to have nothing but the bosh_cli bundled with bosh-lite so that I wouldn't be getting the dreaded Loading the cli took n seconds, consider cleaning your gem environment. How are you handling a lean bosh_cli gem environment?
Reply to this email directly or view it on GitHub:
https://github.com/cloudfoundry/bosh-lite/issues/162#issuecomment-118301232

@drnic I need to use bosh from outside the VM.
I definitely agree that bosh_cli in Gemfile + bundle install --bintubs + PATH=./bin:$PATH is the best approach. I wanted to understand the reasons behind removing the Gemfile from the project. Maybe there is a better way of achieving a lean gem environment that bosh is happy with.

You don't need the bosh-lite repo per se. Make your own repo, and in the Vagrantfile plus Gemfile and you're good to go.
On Fri, Jul 3, 2015 at 7:39 AM, gerhard<EMAIL_ADDRESS>wrote:

@drnic I need to use bosh from outside the VM.
I definitely agree that bosh_cli in Gemfile + bundle install --bintubs + PATH=./bin:$PATH is the best approach. I wanted to understand the reasons behind removing the Gemfile from the project. Maybe there is a better way of achieving a lean gem environment that bosh is happy with.
Reply to this email directly or view it on GitHub:
https://github.com/cloudfoundry/bosh-lite/issues/162#issuecomment-118377025

For example https://github.com/starkandwayne/concourse-bosh-lite is a bosh-lite with dedicated instructions to deploy concourse to it
On Fri, Jul 3, 2015 at 7:39 AM, gerhard<EMAIL_ADDRESS>wrote:

@drnic I need to use bosh from outside the VM.
I definitely agree that bosh_cli in Gemfile + bundle install --bintubs + PATH=./bin:$PATH is the best approach. I wanted to understand the reasons behind removing the Gemfile from the project. Maybe there is a better way of achieving a lean gem environment that bosh is happy with.
Reply to this email directly or view it on GitHub:
https://github.com/cloudfoundry/bosh-lite/issues/162#issuecomment-118377025

Makes sense, cheer :wink:


Add touch and mouse control

This PR adds touch and mouse control.

Touch the left half of the screen (a): previous picture
Touch the right half of the screen (d): next picture
Touch near the top of the screen: open menu

Menu items are configurable, the existing options include:

Pause ( ): pause/resume the playback
Display off (o): turn off the display (when off, any input from the selected peripheral device will turn it back on)
Location on/off (l): shows or hides location information
Exit (e): exit PictureFrame
Power down (p): power down the device

Menu items offer customization via config. The label of each button can be modified (e.g., localized to a different language) as well as its keyboard shortcut.
The business logic of each menu item is universal for all input types. More menu items can be created by subclassing  IPMenuItem and defining its callback method.
As not to interfere with clock that is also near the top of the screen, when the menu is shown, then clock is hidden.
In the touch mode, if not interacting with the menu for a specific amount of time (defined in config), it automatically disappears. Auto-hiding can be disabled (config). Menu can be manually hidden by touching the screen anywhere outside of the menu, too.
In the mouse mode, the menu remains shown for as long as the mouse pointer hovers it.
In the keyboard mode, the menu is not rendered.
Only one mode can be selected at a time - it is not possible to simultaneously enable keyboard and mouse, for example. The reason is technical. In the keyboard mode, in order for menu items to register keyboard strokes, the menu must be constantly shown. In order not to block the view, is is positioned out of view. This behavior is incompatible with mouse and touch.
As the older interface_kbd has been effectively replaced by interface_peripherals, it has been removed.
There is one change that affects the global playback behavior. Previously, when the playback was paused, it was not possible to navigate to previous or next picture. With this PR, manual navigation to previous or next picture is possible even when the playback is paused.
Known issues:

The picframe does not run as a service with keyboard input enabled (both touch and mouse do).
I encountered wrong touch-to-position mapping on my hardware - RPi3B+, Waveshare 10.1inch HDMI LCD (E). The screen has a resolution of 1024x600 px. While the pointer follows very precisely touch in the desktop, and pi3d correctly detects the screen resolution (both Display.width and Display.height), it seems as if pi3d internally tried to translate the touch to coordinates assuming 4:3 screen ratio (that would be 1024x768). If I compensate for this inaccuracy on the y axis, the touch is detected precisely. I would like to ask for your feedback from different touchscreens and resolutions to see if this logic applies universally or not.

Hi @glenvorel finally I've got pygame working on my m1 Mac now. But pi3d needs openegl together with the option pygame=True. Unfortunately openegl is not available (or at least I don't now how to install it on my m1 Mac).
@paddywwoof do you have an idea, if openegl is really required together with pygame?

I made a few minor changes, the main one being that each menu item invocation is now consistently logged.

Hi @glenvorel, I gave up to get this running on MacOS. But I will test it on my spare raspberry pi3 on buster.

@glenvorel  Hi I merged your code into release 2022.02.20 and mentioned you in the Acknowledgement chapter of Readme. If you would like to see your full name, please let me know. Hope it's fine, if I would be the maintainer of this code also in the future.

Hi @helgeerbe, as I wrote in the PR description, there are some known issues so it will almost definitely need some maintenance in the future. You can feel free to maintain the code. You can also ping me and I'll do my best to help.
Thank you for the mention in acknowledgments. My GitHub username is in fact my full name - Glen Vorel.


Mega-NeRF on KITTI dataset, weird results

Hi !
I try to run Mega-NeRF on KITTI dataset, sequence 00. It's a dataset, containing images from stereo camera, facing forward, on a car. I took only images from left camera from stereo camera.
At first I tried to train first 20 frames of the sequence without splitting into cells, i.e. I defined grid_dim 1 1 when running script create_cluster_masks.py.
In config file I put only one parameter:
ray_altitude_range: [-200, +200]
I expect that rendering ray will not be farther than 200 meters from the initial pose of the car in the sequence of images even after 20 frames (the car will not go away more than 20 meters from the starting point).
After training on 500 000 iterations I've run merge_submodules.py and create_octree.py.
Then I opened results in mega-nerf-viewer and saw something unreasonable - see the attached screenshot

What have I done wrong ?

Hi, I have this problem when running mega-nerf-viewer, how can I fix it?


How does Formik show error on untouched fields?

Discussed in https://github.com/formium/formik/discussions/3249

Originally posted by SevenOutman June 17, 2021
The use case
It's a common use case to validate a required field and show an error if it's not filled.
The problem
In this case the field is left untouched, thus the <ErrorMessage> shall not show according to its implementation (as shown below):
https://github.com/formium/formik/blob/903c1101240632c84fa36c8991ea9fd03b25f1cf/packages/formik/src/ErrorMessage.tsx#L39-L51
The question
What is the correct/recommended way of showing errors on required fields when it's not touched? My current approach is setting initialTouched to true on every required field. But it feels so weird. :(

It's not cute, but I just use the Formik errors and check the path for an error using json-ptr aliased as jsonpointer. I couldn't make it work using the ErrorMessage component without doing what you suggested - setting everything to touched, which was a bummer. Your approach is simpler, but felt like it was worth sharing if setting all to touched was not an option.
{errors && jsonpointer.has(errors, convertDotPathToJsonPointer(path)) && (

        {jsonpointer.get(errors, convertDotPathToJsonPointer(path)) as Record<string, any>}

)}

Here is the helper function for converting the path to a json pointer
export const convertDotPathToJsonPointer = (dotPath: string): string => {
    const regex = /\./g
    return `/${dotPath.replace(regex, "/")}`
}

I made a FieldWrapper component that holds the field, a header label, and the error message, so if/when the error message is fixed, I will just have to update it here.
const FieldWrapper = (props: wrapperProps) => {
    const { label, path, depth, field, errors } = props
    return (
        <>
            <div className={`section-depth-${depth}`}>
                {label}

{field}

                {errors && jsonpointer.has(errors, convertDotPathToJsonPointer(path)) && (

                        {jsonpointer.get(errors, convertDotPathToJsonPointer(path)) as Record<string, any>}

                )}

        </>
    )
}


HELP with abc import.

Description : I cannot import mongodb data to my elasticsearch
Hi I'm using abc 0.5.0 as a means to import data from my Mongodb (ip <IP_ADDRESS> this has a security onion OS installed in it) to my elasticsearch (IP <IP_ADDRESS> this is a centos 7 machine)
for now I'm using the command on the centos 7 machine
abc import --src_type='mongodb' --src_uri="mongodb://username:password@<IP_ADDRESS>:27017 " "http://localhost :9201/index"
it shows the error  this error
error connection , no reachable servers ..
both machines can ping each other and both machines have their firewalls off ( for testing purposes)
I even allowed ports 27017 and 9201 to go through their firewalls ( being desperate here )
What am I doing wrong here? am I missing some steps to import the mongodb data to elastic search??
PS. I tried using transporter too but failed to run ( probably the same error)

Checks

[x ] I have mentioned my abc version in the issue, if applicable.
[x ] This issue is not a duplicate.
[x ] This issue has a description.

@rolfnufable any news here? i've go the same issue

This might likely be due to your host server requiring SSL connection. We have added --ssl switch recently which when set to true will connect to the Mongo server with SSL enabled.
If this persists with the latest version of ABC, feel free to comment here and I will re-open the issue.

Hi,
I tried the same with this command:
abc import --ssl=true --src_type=mongodb --src_uri="mongodb://localhost:27001/mytest" "https://user:password@my_elastic_cloud_ip/mytest"

I'm getting the same error. I could connect the elastic cloud index via Dejavu.

also seeing this issue; using mongodb atlas & elastic cloud

also seeing this issue; using mongodb atlas & elastic cloud. Any progress guys?

@filipeoliveira This typically happens when there is an issue with the connection strings used for the source/destination DBs. This isn't a bug with ABC, we have users who are using MongoDB Atlas with ABC without issues.

@siddharthlatest Any update on the issue.


Set HOMEBREW_BOTTLE_DEFAULT_DOMAIN based on operating system

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?

This change is an action item over at https://github.com/Linuxbrew/brew/issues/612, related to #4758.
Linuxbrew bottles are at https://linuxbrew.bintray.com by default, so use that as HOMEBREW_BOTTLE_DEFAULT_DOMAIN on Linux. Continue to default to https://homebrew.bintray.com on macOS.
I know the changes in brew.sh are implemented differently in Linuxbrew, but wasn't sure if we would be needing $HOMEBREW_SYSTEM, $HOMEBREW_MACOS, et al enough to justify copying the logic verbatim.

Is there actually a reason this needs to be in Bash?

The environment variable HOMEBREW_BOTTLE_DEFAULT_DOMAIN is used by brew vendor-install.
https://github.com/Homebrew/brew/blob/0af24cf8bc6ae9572de19c1f1209320f81cf31e2/Library/Homebrew/cmd/vendor-install.sh#L16

There's one corner case. The portable-ruby bottles are on homebrew.bintray.com for both macOS and Linux. I'd suggest hard coding it, which is the way it was previously, except that there was a PR recently from someone who wanted to be able to set the environment variable HOMEBREW_BOTTLE_DOMAIN to download those bottles from a custom domain.
One easy fix is upload the Linux portable-ruby bottle to linuxbrew.bintray.com so that it exists in both places.

One fix is upload the Linux portable-ruby bottle to linuxbrew.bintray.com so that it exists in both places.

I would go for that solution, to avoid hard-coding of the url and to keep the code consistent :)

Here's another possible fix, which is currently used in Linuxbrew:
https://github.com/Linuxbrew/brew/blob/4b3c66a7bfc423fbcdc6c73495761a2a949c82fa/Library/Homebrew/cmd/vendor-install.sh#L24-L26
Note it uses HOMEBREW_BOTTLE_DEFAULT_DOMAIN_MACOS rather than HOMEBREW_BOTTLE_DOMAIN.

One fix is upload the Linux portable-ruby bottle to linuxbrew.bintray.com so that it exists in both places.

I like this. I'm happy to upload it to both places in future if I can be given access to Linuxbrew's Bintray.

Okay. That works for me. I've invited mikemcquaid to the linuxbrew organization on Bintray.

@sjackman Can you create bottles-portable-ruby / portable-ruby / 2.3.7 and I'll upload the bottles there? Thanks!

Bintray seems to be experiencing a technical problem preventing me from creating a new repository. I've opened a ticket with their support.

The Bintray issue has gone away on its own. I've created the repo/package/version and uploaded the portable-ruby bottle for Linux. https://bintray.com/linuxbrew/bottles-portable-ruby/portable-ruby/2.3.7#files

Can you use an if/else here instead? I'm also not entirely sure this is necessary as it's a fallback from when you're updating from and old Homebrew version. I've been wondering for a while if there's a way to resource brew.sh in that case (but maybe that's a separate issue)?

I've redone that now, but what do you mean by resourcing brew.sh? As in, just make the fallback URL somewhere on brew.sh and then use server-side redirects/infrastructure to point to the right place?

Mike meant sourcing anew the shell file $HOMEBREW_REPOSITORY/Library/Homebrew/brew.sh.

@sjackman @alebcay Yep but that definitely doesn't need to be in this PR.

Merged. Thanks again for your contribution to Homebrew, Caleb! 🏅


Run system command

Description
Hello,
I would like to know if it is possible to execute a system command from a hook. For example in beforeEach?
Like Cypress does with exec?
https://docs.cypress.io/api/commands/exec

I'v found a solutions by using :
import util from 'util';
const exec = util.promisify(require('child_process').exec);

beforeAll(async () => {
  await exec(`my command`);
});

Thanks !


Nock mismatching method & throwing error

Hey,
Forgive me if I haven't scoured through the issues properly for a fix, but I'm currently hitting a wall trying to use Nock to mock a PUT request that I'm making against a remote URI in my unit tests. For example:
const testPutMock = nock('sample.com').put('/an/api/path');
testPutMock.reply(204);

For some reason, this is returning a message along the lines of:
Error: Client request error: Nock: No match for request POST ['sample.com/an/api/path']

Has this occurred before? Am I missing something?
Thanks.

Looks like your client is making a POST and not a PUT request.
To make sure, can you share the client code that triggers that?

After what you mentioned, I double checked the client code - looks like a POST was actually being sent (typo...typical).
Thanks anyway, I'll close it


Why the generated image are strange

Here are my generated images:

My code is the same as the given example.

@zcx-language I think this is because LAMA is a refiner, not an inpainter


Pin rapids

Somehow I missed this in #155. I am trying to resolve this locally. I'll report back when/if it suceeds.

Does not resolve. Seems like maybe this issue is pyarrow related? I am getting rid of the tensorflow stuff.

Does not resolve. Seems like maybe this issue is pyarrow related? I am getting rid of the tensorflow stuff.

This one actually resolved!

This one actually resolved!


Homepage project loading in tabs

When merged this will resolve #4313 .

@clone1018 may jump in here (slack).

I'll update this ticket with anything I plan on doing

Closing as out of date.


Fix user avatars

I want to merge this change because it fixes vertical align of user initials in avatars.
Note: build on top of #638
PR intended to be tested with API branch: master
Screenshots

Pull Request Checklist

[x] All visible strings are translated with proper context.
[x] All data-formatting is locale-aware (dates, numbers, and so on).
[x] Translated strings are extracted.
[x] Number of API calls is optimized.
[x] The changes are tested.
[x] Data-test are added for new elements.
[x] Type definitions are up to date.
[x] Changes are mentioned in the changelog.

Test environment config

API_URI=https://master.staging.saleor.rocks/graphql/

Task linked: CU-74uyc2 Fix rendering staff avatars


Importing pysqlite3

Hi, on Windows 10
When I have installed as "python setup.py build:
I can't import pysqilte3 after installing, there is an error
"ModuleNotFoundError
in --> from pysqlite3._sqlite3 import *
....
ModuleNotFoundError: No module named 'pysqlite3._sqlite3"
there is no file _.sqlite3
When I'm trying to install as "pip install pysqlite3-binary"
ERROR: Could not find a version that satisfies the requirement pysqlite3-binary (from versions: none)
ERROR: No matching distribution found for pysqlite3-binary
Could you help me please?

I do not produce windows builds of pysqlite3-binary, and to compile it you will need sqlite3.h installed.


Discussion: Update our motto / mission statement

Discussion Topic
When we launched Shipwright ~1.5 years ago, we started with a simple motto - "A framework for building container images on Kubernetes." One thing that stood out to me after our Beta API workshop is that we have aspirations that go beyond just building a container image. The Triggers and Image projects are expressions of that aspiration - we want to integrate with other cloud-native projects and build tooling that helps manage the deployment of cloud-native applications. The managed-push feature in the core Build project opens avenues to improve the app build experience - particularly when it comes to supporting features related to software supply chain security. Our current motto does not capture these goals, aspirations, and possibilities.
Initial Proposal
"Shipwright: Build applications for the cloud, on the cloud"
Next Steps
I'd like use to circulate/iterate on a new motto here - or even discuss if we should keep the current motto. Whatever we decide upon should be reflected on the website.

For me, the container image is our central element and I would suggest to retain it in the mission statement. An application goes beyond that and also needs deployment artifacts.
A Cloud for me has the touch of a hosted service and we'll in a foreseeable future will not have an as-a-service shipwright somewhere I think (at least not maintained by Shipwright itself). Which could be what is expected by "on the cloud". In general, I think that Kubernetes is still a very strong buzzword that is clearer as cloud is.
What I am all for is to extend the list of verbs. Not just building container images, but also maintaining, maybe securing could be additions.

From Refinement, closing, nothing to do here.


Fix CI failures in checkpoint generation log regex

Motivation
CI panicked in wait_for_zebra_checkpoints_generation(): https://github.com/ZcashFoundation/zebra/actions/runs/5418491535/jobs/9851372930?pr=7090#step:8:219
Originally posted by @arya2 in https://github.com/ZcashFoundation/zebra/pull/7090#pullrequestreview-1509652219
Diagnosis
It looks like this regex might be too strict, Zebra logged a block height in the *9000 range before it was terminated.

Does this one still need a fix?

Yes, we need to relax the check in the test code so it accepts some range of blocks around the current height. Using a 1000 block range is too short and fails the test, but only rarely.
A 10,000 block range would probably work fine, so would parsing the height and comparing it. There can't be too much of a gap between the current height and the start and end of the check range, otherwise the test will timeout and fail, skip too many checkpoints, or take too long.

This happened again today:
https://github.com/ZcashFoundation/zebra/actions/runs/6280142048/job/17057947498?pr=7611#step:9:269

Just to be clear, I'm not working on this ticket, because we're trying to spread CI work around the team.

Un-scheduling for now, doesn't seem to be high priority

Just noting that this check will fail CI 40% of the time as soon as blocks get smaller, and we don't control block size. (That's based on the number of transactions.)


remove unnecessary  std::move & unused capture

according to the discussion here.
and the C++11 §12.8/32
When the criteria for elision of a copy/move operation are met, but not for an exception-declaration, and the
object to be copied is designated by an lvalue, or when the expression in a return statement is a (possibly
parenthesized) id-expression that names an object with automatic storage duration declared in the body or
parameter-declaration-clause of the innermost enclosing function or lambda-expression, overload resolution
to select the constructor for the copy is first performed as if the object were designated by an rvalue. If
the first overload resolution fails or was not performed, or if the type of the first parameter of the selected
constructor is not an rvalue reference to the object’s type (possibly cv-qualified), overload resolution is
performed again, considering the object as an lvalue. [ Note: This two-stage overload resolution must be
performed regardless of whether copy elision will occur. It determines the constructor to be called if elision
is not performed, and the selected constructor must be accessible even if the call is elided. — end note ]

C++11 §12.8/31
When certain criteria are met, an implementation is allowed to omit the copy/move construction of a class
object, even if the constructor selected for the copy/move operation and/or the destructor for the object
have side effects. In such cases, the implementation treats the source and target of the omitted copy/move
operation as simply two different ways of referring to the same object. If the first parameter of the selected
constructor is an rvalue reference to the object’s type, the destruction of that object occurs when the target
would have been destroyed; otherwise, the destruction occurs at the later of the times when the two objects
would have been destroyed without the optimization.122 This elision of copy/move operations, called copy
elision, is permitted in the following circumstances (which may be combined to eliminate multiple copies):

fixing #1557

Speaking about red CI, csie.ntu.edu has very unstable web-server which crashes very often and causes red check-docs test. We cannot do anything, and should just wait they repair they server and re-run the test. And there is phantom  OSError: exception: access violation writing error at Appveyor again (I have no permissions to re-run Appveyor).

@StrikerRUS  can we write some exception for thses sites?
The second part will be pushed later.

can we write some exception for thses sites?

Yep, we can include them in the ignore list here: https://github.com/Microsoft/LightGBM/blob/1b53fa0763bc6e71a021be002ee9985ba079d5bb/docs/.linkcheckerrc#L7-L9
But what if they'll become unreachable permanently at some point in the future? We'll never discover it.
PS. It takes csie.ntu.edu support team approximately a day (if it's not a weekend) to repair the web-server.


Improve handling of claim _

This improves the error message from "address <IP_ADDRESS>/12 is already owned by <IP_ADDRESS>" to "address <IP_ADDRESS>/12 already in use".  Also the code as it stands would not have removed the 'owned' entry if it was deleted from the plugin.
It does not address the basic point of #2194, which is that the situation does not deserve a diagnostic. When the re-launch does its "claim" operations, it passes in the container ID, which does not match up to the earlier allocation via the plugin.

needs rebase

rebased

LGTM


Eject schematic

Blocked by https://github.com/angular/devkit/pull/946

As discussed, we don't plan to bring back the ng eject command this way.


Can't find the plugin even i have added the resovler

in the project/plugins.sbt i defined the resolver
resolvers += "iheart-sbt-plugin-releases" at  "https://dl.bintray.com/iheartradio/sbt-plugins"
addSbtPlugin("com.iheart" % "sbt-play-swagger" % "0.5.2-PLAY2.4")
However, when run the sbt compile, it still can't find com.iheart#play-swagger_2.10;0.5.2-PLAY2.4:
This is the error message:
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.iheart#play-swagger_2.10;0.5.2-PLAY2.4: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]          com.iheart:play-swagger_2.10:0.5.2-PLAY2.4 ((com.iheart.sbtPlaySwagger.SwaggerPlugin) SwaggerPlugin.scala#L28)
Anybody can help on this?

You shouldn't need to add the resolver. This should be available in the default resolves. Try make sure you are on the latest sbt?

Putting the path in ~/.sbt/repositories that had a version for Scala 2.10 that worked with my sbt 0.13 worked for me:
[repositories]
local
iheart-sbt-plugin-releases: https://dl.bintray.com/iheartradio/sbt-plugins, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier] ).[ext]
iheart-play-swagger_2.11-releases: https://jcenter.bintray.com

and the jcenter version for sbt publishLocal


Clean up /ckcp

With #68 and #79 merged, there'll be redundant resources inside /ckcp.

Closing this issue, fixed by #94.


Ensure hs don't jump

https://dequeuniversity.com/rules/axe/4.7/heading-order

 Heading elements are not in a sequentially-descending order           Properly
 ordered headings that do not skip levels convey the semantic structure
of the page, making it easier to navigate and understand when using
assistive technologies. Learn more about heading order.
Failing Elements

       Key<h5 class="text-xl font-bold">

Heading elements are not in a sequentially-descending order
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more about heading order](https://dequeuniversity.com/rules/axe/4.7/heading-order).
Failing Elements
Key


Change Player Icon

Player Icon needs to be changed from O/X

change player icon to P and computer to C

if you run the newer app.js player would display as P and the computer would display as C


Enhanced type conversions

Support for Union (and at the same time Optional)
Support for int and float as input to int, float, datetime and timedelta
None type support improved: None string is not anymore default converted as Union (and Optional) are now supported.
Fixed None string with Enum handling

Related pull request: https://github.com/robotframework/robotframework/pull/3699

Related to https://github.com/robotframework/robotframework/issues/3616

We now have dedicated issues for topics covered by this issue:

Union support #3738
Non-string argument conversion (incl. int and float) #3735
Stricter None conversion #3729 (fixes also problem with None and enums)


Problem with accuracy calculation?

https://github.com/bazingagin/npc_gzip/blob/a46991564161023bba3b1267e0e74c69dab8f8eb/experiments.py#L116
It appears that in the calc_acc method it marks a sample correct if ANY of the labels with the same most_count have the correct label.
For k=2 (I think the paper always used k=2?), any time there is a 1-1 tie (top 2 have different labels), it will be correct if EITHER is correct, rather than a "fair" classifier that would have to make a decision before scoring.
This fork has my implementation of the kNN accuracy results for comparisons. see file docstring for notes:
https://github.com/kts/npc_gzip/blob/main/calc_acc.py

It seems to be an original intention of the authors (link):

The question is: do authors report top-2 accuracy for all other methods? I found no code for them in this repository, but I may have missed something. And it seems there is nothing about it in the paper.
Because if you report top-1 accuracy for one set of methods and top-2 accuracy for another set of methods, it is not fair at all.
However, the paper is still very insightful and well-written, even if the numbers are incorrect.

So, is this method useful?

I cannot speak for the benchmarks run in the original manuscript, but me reimplementation which reports numbers for a weighted kNN classifier and also regression (naive kNN regressor) for molecular string representations works well given the simplicity of the approach (see https://github.com/daenuprobst/molzip). So the method is useful in that setting, but there is more to do and things to try.

Thanks for the reply. Sorry if this added extra stress to your thesis day!
Now, I understand that this is the desired behavior rather than a bug.
Why do I call it top-2 accuracy? In k=2 case, you find the two closest training points to your test point and look at their labels. Let's call the labels C for correct and W for wrong, depending on if it equals the test point's label or not. There are 4 possibilities,
labels   voting       output
---------------------------------
WW       W wins 2-0   W (the two Ws could be different, but the result is the same)
WC       1-1 tie      C
CW       1-1 tie      C
CC       C wins 2-0   C

So, it's equivalent to being correct if the correct label is one or both of the top 2. (I did try to mention in the blog that it's not computing top-k for k>2, because it's only looking at those TIED for highest count, not all k).
The problem is with the 1-1 ties.  You need some method to break the tie, and in a "fair" classifier you cannot look at the test label. I think if you use k=1, the code is fine (never have ties), but the results will be necessarily lower (and I believe k=2 was used for the results in the paper).
You're right, I too have never seen "top-k accuracy" used in the context of kNN, so maybe the wording of "top-2" isn't very helpful and I shouldn't use that. It just seemed a concise way to describe the phenomenon described above.
I'm not sure I followed everything you wrote, but maybe you agree with this and the main issue is just making that more clear in the paper. That's possible, but I'd say the main point is: this method uses the test label as part of its decision process which is not the standard classification setting and can't be fairly compared to others that don't.

Hi all,
thanks @bazingagin for the code and make me think about gzip, such an intriguing way of measuring similarity!
About taking the correct label if predictions are tied.

This strategy is used for all non-parametric methods like W2V and SentenceBERT

This sound fair, but I'm not 100% sure if really fair, since likelihood of ties may be greater for some method than for other.  Do you know how often the tie happens for different method? I guess if it's about equal than it may be fair. Maybe it's good to recalculate all method and baselines with the random selection by @kts and getting some mean over different seeds.

Hi @kts, thanks for your reply. No worries, I think it's my responsibility to clarify things : )
I'm glad we are on the same page about the top k accuracy!
Regarding the tie-breaking strategy:
I agree with you that the maximum strategy is too ideal, not practical. But I don't quite agree the problem here is that the test label is used in the decision process. Code-wise, I'm calculating the accuracy on the fly together with making predictions for simplicity. But I can totally separate these two processes by running multiple times for prediction on single dataset to get every possible predicted label list, and calculate the accuracy for each list, then check the minimum, maximum, and average accuracy over those lists. That's why I always said my reported accuracy is an upperbound because in the above scenario, I only report the maximum accuracy among all the predicted label lists.
Therefore, I still think the maximum strategy can serve as one of the options for tie-breaking in the code, for upperbound. But I think reporting it alone is not enough. As you suggested, I will modify the paper for
(1) Making things clearer: Originally I only mentioned "we report the maximum possible accuracy". I will elaborate more on the details.
(2) Report 1<=k<=5 for both random and maximum accuracy. I will also list the result in the repo.

Hi @flipz357,
Thanks for your comments. I agree with you that different methods will have different likelihood on tie-situation. So yes, I will report the accuracy with random selection.

Okay, you're free to use the wording that you see fit and think readers will understand. I didn't write the blog post or this issue to make you change the paper, etc, but for others trying to recreate the results.
But I do maintain that using this approach (either looking at the test label or running multiple times with randomness and taking the best) makes the comparisons with other baselines unfair - i.e. it's wrong to say "this beats BERT in these tests" - unless you get those results with a classifier that doesn't look at the answer.
A probably bigger problem with at least some of the datasets someone pointed out here https://github.com/bazingagin/npc_gzip/issues/13
Anyways, it's still an interesting approach and paper. Cheers.

@bazingagin I was really excited about this paper, but I carefully checked the code and here I have to agree with @kts that the test labels are indeed used in the decision making process. The maximum accuracy you referred to is essentially computed with two steps for the WC tie cases: (1) choose the C label as the prediction using the ground-truth label; (2) calculate the accuracy between the predictions and the ground truth labels.
So in a fair setting, there should never be a maximum accuracy; there should be one and only one accuracy between the predictions (each data sample should only have one final prediction) and the test labels. The process of obtaining the predictions should be independent of the test labels, for example, via majority voting or random selection.
Hope this helps. I think it is still a good paper after the fix and result update.

From https://news.ycombinator.com/item?id=36762279 :

What about the difference in CPU cost, RAM cost, and GPU training hours,
though? What about the comparative Big-E's of the models?
Great topic: Model minification and algorithmic complexity

These are good research topics, but then you really need to be
comparing to other models in the same class.
The only other super cheap model they compare with is FastText, and
FastText beat them quite substantially.

Gzip fails at audio and video compression IIRC?
Are time-domain signals better compressed with A/V codecs
(compression-decompression); and does this gzip finding suggest that other
compression algorithms likely to outperform LLMs at certain tasks like
computational complexity, at least?

https://en.wikipedia.org/wiki/Lossless_compression
https://en.wikipedia.org/wiki/Gzip#Derivatives_and_other_uses :

Research published in 2023 showed that simple lossless compression
techniques such as gzip could be combined with a k-nearest-neighbor
classifier to create an attractive alternative to Deep Neural Networks for
text classification in Natural Language Processing. This approach has been
shown to equal and in some cases outperform conventional approaches such as
BERT due to low resource requirements, e.g. no requirement for GPU
hardware.[15]

https://en.wikipedia.org/wiki/Compression_artifact

From
https://en.m.wikipedia.org/wiki/Blackman–Tukey_transformation#Transformation
:

In signal processing, transformation from the time domain to another
domain, such as the frequency domain, is used to focus on the details of a
waveform. Many of the waveform's details can be analyzed much easier in
another domain than the original. Different methods exist to do
transformation from time domain to frequency domain; the most prominent is
the Fourier transform, which the Blackman–Tukey method uses. Prior to the
advent of fast computers and the 1965 rediscovery of the fast Fourier
Transform, the large number of computations necessary for the discrete
Fourier Transform motivated researchers to reduce the number of
calculations required, resulting in the (now obsolete) Blackman–Tukey
method based on the Wiener-Khinchin theorem.[2]

TASK: Find all nonlocal entanglements - entanglement is, per quantum
discord, some of the relations that define the structure of the universe -
and present a compact representation with near-minimal complexity.
( Task: Computational Task; Constructor Theory
https://en.wikipedia.org/wiki/Constructor_theory#Outline )
Maybe it would be more useful to start with compressing quantum entropy?

https://en.wikipedia.org/wiki/Quantum_discord

https://en.wikipedia.org/wiki/Quantum_mutual_information#Multiparty_generalization
On Thu, Jul 20, 2023, 2:16 AM Xin (Eric) Wang @.***>
wrote:

@bazingagin https://github.com/bazingagin I was really excited about
this paper, but I carefully checked the code and here I have to agree with
@kts https://github.com/kts that the test labels are indeed used in the
decision making process. The maximum accuracy you referred to is
essentially computed with two steps for the WC tie cases: (1) choose the C
label as the prediction using the ground-truth label; (2) calculate the
accuracy between the predictions and the ground truth labels.
So in a fair setting, there should never be a maximum accuracy; there
should be one and only one accuracy between the predictions (each data
sample should only have one final prediction) and the test labels. The
process of obtaining the predictions should be independent of the test
labels, for example, via majority voting or random selection.
Hope this helps. I think it is still a good paper after the fix and result
update.
—
Reply to this email directly, view it on GitHub
https://github.com/bazingagin/npc_gzip/issues/3#issuecomment-1643311310,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMNS7QJBJEQW6IKFM2I2LXRDEKRANCNFSM6AAAAAA2NBKK5U
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

hey @kts @eric-xw I understand that you think using the max accuracy of knn for comparison is unfair. What I was trying to say is that random guess has its lowerbound and upperbound. And theoretically, the upperbound is achievable (yes, the probability is small if say we have 10 tied instances and we only have (1/2)^10 probability of achieving the highest), but still achievable in theory. But I guess we don't need to seek common ground on that as the discussion of unfair or fair comparison/evaluation can go on and on. For example, as https://twitter.com/drjwrae/status/1679988179179536385?s=21 points out, comparing GPT&knn with gzip&knn is a more fair comparison as we can directly compare the estimated compressed length (negative log-likelihood) of GPT with a compressed length of gzip which can better indicate whether pretrained models are worse in capturing regularity on OOD (it is, according to his experiment in random case). I think these are all great suggestions and should be taken into consideration for the future work (like using weighted knn might be even better). But here, I only want to make sure I disclose every detail in the experiment - people are aware the reported result uses max accuracy, assuming every guess is correct when tied. It's their judgment whether they want to check the maximum accuracy in order to see the full potential of this similarity measurement or they want to use random for a practical classifier.
Thanks for the constructive discussion and I will add random results anyway.

Hey, thanks for the nice paper.
My understanding is @bazingagin has an information theory standpoint, for which measuring the amount of information returned by the 2-NN is relevant. Hence the "maximum" accuracy, with accuracy being a proxy of information captured. It seems as mentionned by @bazingagin that other methods may be more relevant to measure this "information capture".
@kts @eric-xw focus on the end to end task and experimental setup, and challenge the fact that the accuracy numbers would not be reproducible in a real setup, because the label would not be available. The comparison becomes unfair to other models in the table 3 that don't have this label info to exploit.

I will add random results anyway.

I think I'd be more helpful if you'd provide:

the minimum and maximum accuracy (no need for random then, random being - on average - the average of the two) - it's easier to reproduce
the accuracy with k=1 - again easy to reproduce and correspond to a "practical classifier"

@cyrilou242

The comparison becomes unfair to other models in the table 3 that don't have this label info to exploit.

imo it may be even unfair within the approaches who can exploit label info, since the approaches may have different likelihood of tie (and approach with more ties have advantage). But yes, if this is the case it may be seen from your suggestion to report

the minimum and maximum accuracy (no need for random then, random being - on average - the average of the two)

Okay, last comment on this :)
Why report the max rather than the mean?
A "fair" classifier can certainly use randomness and you may want to run it multiple times to get a better estimate of it's accuracy - but, for that use the mean over the trials.
I can define a classifier that ignores the data and randomly picks a class. It's has a max possible accuracy of 100%.

Why report the max rather than the mean?

Because reporting mean induces more stochasticity and/or magnitude more of experiments. As you see, we have few-shot experiments across all the settings. Each shot experiment requires 5 times repeated experiments to draw different training samples. Using random and reporting mean means either inducing more stochasticity, which may make the result hard to reproduce, or repeating at least 5*5 times experiments for each shot setting.

I can define a classifier that ignores the data and randomly picks a class. It's has a max possible accuracy of 100%.

That's not the case here as all datasets have more than 2 classes so even randomly picking top 2 nearest neighbors when tied still requires a reasonable similarity measurement.

thanks @cyrilou242, what you said makes sense. I will also include minimum accuracy and k=1 case.

I'm not an expert in this topic, so I have no idea about the standard way to measure accuracies. But, can we use distance information to break ties? To be specific, we calculate the sum of distances of the k-nearest points, and when tie occurs, we choose the class whose sum of distances is the smallest.

@twjang Yes, but  I guess an issue is that gzip will make more ties since the distance function is coarse grained integer (afaik), while for sentence embedding it is fine grained float.

@twjang Yes, this is reasonable strategy. For k=2 (used in paper), the only ties are 1-1, so that strategy is equivalent to k=1 (just take nearest neighbor).
@flipz357 The actual distances used are floats (NCD) https://github.com/bazingagin/npc_gzip/blob/3c219944acfbe4e80d83166eea698ff9da3321af/utils.py#L6 but, it's derived from 3 integers (compressed string lengths), so you're right, maybe it's more susceptible to ties, depending on the dataset.

@cyrilou242 here are results with both lowerboud and upperbound. @kts  I also include the random (only run once though) for reference.

@flipz357 As you mentioned it may be unfair to other non-parametric methods, here are the results with random strategy using W2V and SentBERT for comparison.

Thanks @bazingagin !
Btw, actually you don't need to run random, the expected accurcy (using random guesser to break ties) can be simply calculated: For K=2, as @cyrilou242 mention, it boils down to the average of upper and lower bound. For arbitrary K the accuarcy will depend on the amount of options in each tie, but it can also be calculated.

@bazingagin , so in other words if top2 closest points are of the correct label and are different you count this as a correct prediction? This doesn't make sense. It's same thing like saying: Yeah I'll assume that I'm very lucky and even if the probability is 50% of picking correct label I will pick the correct one. I'm seeing your point that it's not TOP-2 accuracy, but it's very unfair heuristic to use to get the predicted labels.

hey @maxmax1992, sure I do agree it makes the accuracy of gzip inflated. So please check the updated version of the table

The table also includes the updated result for the correct (no overlapped) DengueFilipino dataset.
So only considering the random strategy, we can see

In the few-shot settings, gzip(rand) outperforms all methods on Kinyarwanda, Kirundi, Filipino, and SogouNews but is worse than mBERT on Swahili, on which mBERT has been retained.
In the full dataset setting, gzip(rand) is only highest on SogouNews, is competitive on Kinyarwanda and Swahili, and is bad on Kirundi and updated DengueFilipino

I overall can confirm the updated numbers that @bazingagin posted. For 5-shot only roughly, but that is due to the large deviation over runs (as is also evident from the large 95-confidence intervals in the table).
I do think gzip is quite interesting and its performance in few shot shows that advanced methods struggle in low resource scenarios. However, I think it should be also noted even simpler methods can also provide good results, for anyone interested: https://arxiv.org/abs/2307.15002


Support for base-config

I have a situation where the server certificate doesn't exist in the default Android system trust store for Kitkat(API 19) and below. This is for the release build. So for that purpose we would need to build custom trust store. Can you add support for it using following configuration in the XML file?
<base-config>         <trust-anchors>             <certificates src="@raw/extracas"/>             <certificates src="system"/>         </trust-anchors>  </base-config>

Sorry for the delay of the answer. TrustKit-Android doesn't have the goal to support all the features of the Network Security Configuration also we don't have any plan to support the <base-config> tag for now.


⚠ Secret Website 3 has degraded performance

In d85648a, Secret Website 3 ($SECRET_WEBSITE_3) experienced degraded performance:

HTTP code: 200
Response time: 3178 ms

Resolved: Secret Website 3 performance has improved in 30a906e.