Add fuzzy-matching for autocomplete

ESPECIALLY for member autocomplete (fuzzy-matching table and column names, etc.).

Hey @tconbeer - this program is awesome! thanks for making it!
I'm really keen to have fuzzy-matching, i often don't know what column names are in my database, so i rely on fuzzy matching (in tools like dbeaver) to get them for me.
Would it be as simple as changing the line here for what constitutes a matched completion option?
https://github.com/tconbeer/harlequin/blob/main/src/harlequin/autocomplete/completers.py#L52
I'd imagine, for fuzzy matching, everything would have a "score" which you could threshold.. or maybe, you'd just sort all options by the score (so that the list will be everything but the most likely options are near the top)
This could be quite slow in straight python... do you have any rules / guidelines for adding in C libs into the application? FZF comes to mind.
This might turn out to be a simple change, that I can have a look at doing if you would like.. I'm not sure what the difference between word and member completion classes are though 😅

Yes, you're on the right track there. To answer your questions:

The WordCompleter is called when you start typing any word character in the editor. It matches any keyword, db object, etc. The MemberCompleter is called when you type . (and any subsequent word characters); it returns matches that are members of a certain parent context (e.g., column names if the parent is a table). Both would likely benefit from fuzzy-matching, possibly with some different config. (There is also a PathCompleter but that's probably out of scope).
I agree that speed is important here. I'm fine adding c-extensions if they distribute wheels for most platforms. (e.g., I briefly looked at using a Trie for this, and marisa-trie was a candidate, since they distribute wheels for everything). If they don't have wheels, I'd want to add them as an optional dependency to make installing Harlequin as easy as possible for most people. That said, I wouldn't rule out a pure-python approach; what stands today was my naive implementation that I assumed would be too slow but wasn't. A lot of string operations, regex, etc., are highly optimized by the stdlib already.
Textual already ships with a regex-based fuzzy matcher (source) that powers the command palette. I don't know if this is fast enough or provides the features we want but it could be a good starting point. If it's not fast enough, one basic optimization would be to replace their regex pattern with something that bounds the number of missing characters:

        self._query_regex = compile(
            ".{0,5}?".join(f"({escape(character)})" for character in query),
            flags=0 if case_sensitive else IGNORECASE,
        )

Hey there!
I crunched some of the numbers (extracted the values from WordCompleter.completions)
a local duckdb I had at hand (1412 options). Made a simpler version of the current implementation (that does not handle completion -> label conversion, and uses strings as inputs, instead of completions).
And made 2 simple options for the fuzzy find, one that is pretty much the implementation you posted (2 characters instead of 5 as max intermediates) and one that also adds .* at the begining and end of the expression [I didn't add a score to them for now...].
So for "sele", the expression would be:

unbound -> ^.*(s).{0,2}?(e).{0,2}?(l).{0,2}?(e).*$
bound -> ^.{0,2}?(s).{0,2}?(e).{0,2}?(l).{0,2}?(e).*$

For the word "select":
-> reference: "" takes 130 us (microseconds), "s" takes 80, anything else takes ("se" ..) ~ 76 ...
-> non-bound regex takes 230 us, 260 and 290 respectively.
-> binding the regex takes 231, 163 and 150 respectively.
if lets say ... I want to find the column "europe_sales" and I query "sale"
-> Reference would not find it (but take ~80us)
-> non-bound would take 240 us
-> bound not find it either (and would take 127 us)
sooo ... I think none of these cases is slow beyond being usable but there might be tradeoffs depending on what you want out of them.
LMK if you want me to write the PR and if you have a preference on the implementation!
[I also thought about potential 'hybrid' options ... like using the regex only if there are no suggestions on an exact match ... which might be a happy medium where you pay 100us for mis-typing the first character]
functions code used for the test:
def deduple_str(completions: list[str]):
    uniques: set[str] = set()
    uniques_add = uniques.add
    deduped = [m for m in completions if not (m in uniques or uniques_add(m))]
    return deduped

def refenrence_impl_str(prefix: str, completions: tuple[str, ...]):
    match_val = prefix.lower()

    exact_matches = [c for c in completions if c == match_val]
    matches = [c for c in completions if c.startswith(match_val)]
    return deduple_str(exact_matches + matches)

def alt_impl_str_1(prefix: str, completions: tuple[str, ...]):
    match_val = prefix.lower()
    regex_base = ".{0,2}?".join(f"({re.escape(c)})" for c in match_val)
    regex = "^.*" + regex_base + ".*$" ######## <------------- This is the diff line
    match_regex = re.compile(regex, re.IGNORECASE)

    exact_matches = [c for c in completions if c == match_val]
    matches = [c for c in completions if match_regex.match(c)]
    return deduple_str(exact_matches + matches)

def alt_impl_str_2(prefix: str, completions: tuple[str, ...]):
    match_val = prefix.lower()
    regex_base = ".{0,2}?".join(f"({re.escape(c)})" for c in match_val)
    regex = "^.{0,2}?" + regex_base + ".*$"  ######## <------------- This is the diff line
    match_regex = re.compile(regex, re.IGNORECASE)

    exact_matches = [c for c in completions if c == match_val]
    matches = [c for c in completions if match_regex.match(c)]
    return deduple_str(exact_matches + matches)


IStorage functions have wrong signature

StgOpenStorage and IStorage::OpenStorage both have arguments of type IStorage* (parameter pstgPriority) but their generated functions have arguments of type IntoParam<'a, IStorage> which means we are not able to provide ie. a null to these functions, even through the docs for this function say "A pointer to the IStorage interface that should be NULL. If not NULL, this parameter is used as described below in the Remarks section."
Furthermore, both of these functions return an IStorage* type through their out pointer yet the generated rust functions return Result<IStorage>

Transferred to the windows-rs repository, doesn't look like a metadata issue.

It seems that everything is working as designed. It's just that the rules aren't entirely obvious.
The windows crate translates COM [out] pointers plus HRESULT return values into Result types for convenient error propagation. (I'm not entirely clear on the specifics of where this transformation is done, but for StgOpenStorage this is true.)
The other transformation is (hidden behind) the IntoParam trait. It can construct an interface pointer from an Option. Passing None is equivalent to passing a nullptr at the ABI.
The following code compiles and appears to exhibit the desired behavior.
[dependencies.windows]
version = "0.38.0"
features = [
    "alloc",
    "Win32_System_Com_StructuredStorage",
]

use windows::{
    core::Result,
    Win32::System::Com::StructuredStorage::{
        StgOpenStorage, STGM_READ, STGM_SHARE_EXCLUSIVE, STGM_SIMPLE,
    },
};

fn main() -> Result<()> {
    let _stg = unsafe {
        StgOpenStorage(
            "test.xls",
            None,
            STGM_SIMPLE | STGM_READ | STGM_SHARE_EXCLUSIVE,
            core::ptr::null(),
            0,
        )
    }?;

    Ok(())
}

Thanks for the explanation @tim-weis!
The reason we don't let core::ptr::null() work is that at the type system level, we don't want to allow arbitrary pointers. While passing a null pointer is always safe, passing a non-null pointer might not be safe. Consider the following theoretical very broken code that we don't want to allow:
let x: usize = 0xdeadbeef;
let ptr = x as *const IStorageVTable;
// passing `ptr to `StgOpenStorage` would obviously be wrong

Therefore, we use strongly typed interface types. Interface types in the windows crate are never null. However, IntoParam allows you to pass an Option<IStorage> which represents the fact that the argument is an optional IStorage interface. Thus, None, works fine.
How we're handling params is being changed in #1811, so I think it would be wise to merge that before adding an entry to the FAQ.
However, even after that PR merges, the answer would be the same: passing None. After the PR merges, the type of that parameter will be P: Into<InParam<'a, IStorage>> (i.e., any type P that can be turned into an InParam<'a, IStorage>. None will still work here because Option<&'a IStorage> implements Into<InParam<'a, IStorage>>. However, we might want to consider adding an InParam::null method as well. Therefore, anyone who is thinking "I want to pass a null pointer here", will find a solution that maps neatly to their mental mode.


Adding and granting permissions to organizations

Administator can add authorized organizations to the system's list and synche their events with our calendar.

https://github.com/yeseg11/Let-it-know/commit/e54410f71e4952200e057cee3fb4d288d2bb9ea2


Update version to 0.9.1

Update version with the following changes:

Fix setting printing permission
Fix corruption of string objects in browser
Add option to set default font
Remove call to fontkit.openSync
Add standalone virtual file system implementation
Add option (fontLayoutCache) to disable font layout cache

@devongovett can you take a look at it and publish?

@devongovett Please, release new version.

@devongovett Please, Publish new version.

@devongovett bump

hmmm, we may never see new versions :(

For the time being i published at https://www.npmjs.com/package/pdfkit-es

@blikblum @liborm85 I added you both as owners on npm so feel free to publish. Sorry I didn't see this for so long.

Thanks. Published


relation on createing tables in db not exist

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Serverpod versions

CLI Version: Run serverpod version to determine the version of installed tooling.
Library version: Check the pubspec.yaml file for the version of Serverpod you are using.

Platform information
On which platforms do you experience the issue. Please provide as much information here as you can. Where are you running the server, which front end device are you using?
Additional context
Add any other context about the problem here.

am  still learning and testing serverpod so, i created a small table  to save notes iin it but when am trying to read or write to it am getting this error with status code 500 what am doing wrong

thats the endpoint am useing

Hey @ElsimatAmir! 👋
Have you run the sql script after you generated your Note entity? That error can show if the table Note does not exist in the database.
Try this solution to create the table: https://stackoverflow.com/questions/76180598/serverpod-sql-error-when-starting-a-clean-project.
We are working on migrations for serverpod that will make this process much simpler.

@SandPod yes i have runed the setup tables script and generated the serverpod

Is the table present if you connect to the database using some form of database viewer?

Closing because the issues seems to be solved.


fix: Release barcode scanner when not in use

TODO: test with StrictMode & returnImage: true, since those code paths have changed
TODO: do the same fix for iOS
TODO: remove the assert for analyzeImage()
TODO: let analyzeImage() take the formats from the controller
This PR updates the Android implementation to release the BarcodeScanner when it is no longer used.
It also reflows some blocks of code that could have used early returns and the like.
Fixes #988

Will be replaced by a new PR soon.


Can't scroll to bottom

In my application I have the list of countries phone's codes. And I need to open that list with shown selected item. But when the selected item is last recyclerview can't scroll to the end.

@dmitrikudrenko form the image I can see you're using the sitcky header decoration on both views. It has worked correctly with selection for me and I can't reproduce this issue. Could you provide sample code that reproduces this behaviour? Thanks!

I updated recyclerview support library version and the problem has been disappeared


No Physical Devices Exist - Smithbox` - Version 1.0.19

Recently started getting this error after updating Video Card Drivers. I've tried previous versions, and they don't work either.
Smithbox` - Version 1.0.19

No physical devices exist.

   at Veldrid.GraphicsDevice.CreatePhysicalDevice() in ./src/Veldrid/Veldrid/GraphicsDevice.cs:line 1748
   at Veldrid.GraphicsDevice..ctor(GraphicsDeviceOptions options, Nullable`1 scDesc, VulkanDeviceOptions vkOptions) in ./src/Veldrid/Veldrid/GraphicsDevice.cs:line 203
   at Veldrid.GraphicsDevice.CreateVulkan(GraphicsDeviceOptions options, SwapchainDescription swapchainDescription, VulkanDeviceOptions vkOptions) in ./src/Veldrid/Veldrid/GraphicsDevice.cs:line 2401
   at Veldrid.StartupUtilities.VeldridStartup.CreateVulkanGraphicsDevice(GraphicsDeviceOptions options, Sdl2Window window, Boolean colorSrgb) in ./src/Veldrid/Veldrid.StartupUtilities/VeldridStartup.cs:line 135
   at Veldrid.StartupUtilities.VeldridStartup.CreateVulkanGraphicsDevice(GraphicsDeviceOptions options, Sdl2Window window) in ./src/Veldrid/Veldrid.StartupUtilities/VeldridStartup.cs:line 119
   at Veldrid.StartupUtilities.VeldridStartup.CreateGraphicsDevice(Sdl2Window window, GraphicsDeviceOptions options) in ./src/Veldrid/Veldrid.StartupUtilities/VeldridStartup.cs:line 86
   at Veldrid.StartupUtilities.VeldridStartup.CreateWindowAndGraphicsDevice(WindowCreateInfo windowCI, GraphicsDeviceOptions deviceOptions, Sdl2Window& window, GraphicsDevice& gd) in ./src/Veldrid/Veldrid.StartupUtilities/VeldridStartup.cs:line 31
   at StudioCore.Graphics.VulkanGraphicsContext.Initialize() in ./src/StudioCore/Graphics/VulkanGraphicsContext.cs:line 58
   at StudioCore.Smithbox..ctor(IGraphicsContext context, String version) in ./src/StudioCore/Smithbox.cs:line 95
   at Smithbox.Program.Main(String[] args) in ./src/Studio.App/Smithbox/Program.cs:line 32

Seems like an issue with your graphics card not being recognized. Check that your computer hasn't defaulted to the in-built GPU (if it exists), that can happen sometimes when you update GPU drivers.

Reinstalling the drivers worked perfectly. Thank you.
On Fri, Aug 30, 2024, 5:13 PM Vawser @.***> wrote:

Seems like an issue with your graphics card not being recognized. Check
that your computer hasn't defaulted to the in-built GPU (if it exists),
that can happen sometimes when you update GPU drivers.
—
Reply to this email directly, view it on GitHub
https://github.com/vawser/Smithbox/issues/114#issuecomment-2322344736,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFBC6RAHXQLWZ6DHO6FBWHTZUDN6PAVCNFSM6AAAAABNLAVKU2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRSGM2DINZTGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

For someone has laptop with AMD iGPU and NVIDIA GPU (with Windows), follow these steps.

Change graphics processor for Smithbox to GPU.
Create system environment variable DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1 and set value to 1.

Veldrid.GraphicsDevice.CreatePhysicalDevice uses vkEnumeratePhysicalDevices.
It seems Vulkan can't find a device in this case with default settings.
reference: https://nvidia.custhelp.com/app/answers/detail/a_id/5182


Makefile: force symlink to cri-o.service

Signed-off-by: Antonio Murdaca<EMAIL_ADDRESS>

@rhatdan PTAL and merge if it looks ok

Since I just added the same patch, I will say
LGTM

https://github.com/kubernetes-incubator/cri-o/pull/800 is same.

LGTM, but why is duelling banjos playing in my head now?

[retest]


plugins only minified

Hello,
I am using bower with gulp etc and I would like to operate with "raw" files, however all css files in themes folder are minified already. I believe there should be not minified versions as well.

Hello, they are in the src directory obviously, and people wanted as few files as possible in the exported dist folder to minimize the load. Since I didn't see the point of having unminified css files, except for 2 minutes maybe while editing a theme, I went with it. How useful would it be to you?

Sorry, I didn't saw they exist in src directory. Closing issue.


Error: exception done_getting_tensors: wrong number of tensors; expected 255, got 254

What is the issue?
After installing Ollama, pulling llama3.2 and trying to run it, I get this error. I saw other threads regarding the same, but in my case updating to the latest ollama didn't help.
Here's what --version dumps out:
ollama version is 0.1.30
Warning: client version is 0.3.12
OS
Windows
GPU
Nvidia
CPU
AMD
Ollama version
0.1.30

You are running an old version of the server, have you previously installed in WSL (https://github.com/ollama/ollama/issues/6701)?

You are running an old version of the server, have you previously installed in WSL (#6701)?

That was exactly it, thanks!


Add support for attempts and backoff

Added QueueScheduler to support many BullMQ features, like attempts and backoff

Thanks for the PR!
I have to read a bit more about it before merging, I would like to understand how it works before merging. 👍🏻

Looking at BullMQ documentation, it seems that QueueScheduler is not needed anymore.

From BullMQ 2.0 and onwards, the QueueScheduler is not needed anymore, so the information below is only valid for older versions.

https://docs.bullmq.io/guide/queuescheduler

Looking at BullMQ documentation, it seems that QueueScheduler is not needed anymore.

From BullMQ 2.0 and onwards, the QueueScheduler is not needed anymore, so the information below is only valid for older versions.

docs.bullmq.io/guide/queuescheduler

yes, you can ignore this PR and release a new major version with bullmq 2.0 support

Done in https://github.com/setten-io/adonis-bull-queue/pull/15


Feature/721 teleport input action

XRTK - Mixed Reality Toolkit Pull Request
Overview
This PR is the conclusion to my Teleport System series for v0.2. It implements the feature request described in https://github.com/XRTK/XRTK-Core/issues/721 and fixes some other issues. Full Content:

Added a "Teleport Action" configuration option to the MixedRealityTeleportSystemProfile
Implemented another MixedRealityTeleportValidationDataProvider constraint maxHeightDistance, which allows restricting teleport distance on the y-axis
Fixed TeleportPointerInspector, I missed removing obsolete serialized properties in my previous PRs
Implemented support for Digital and SingleAxis input actions for TeleportPointer. Overall the teleport system now supports Digital | SingleAxis | DualAxis input actions for teleport

How To Test

Create a Digital input action or use an existing one and map it to some controller input, then assign it as the teleport action in the teleport system profile
Create a SingleAxis input action or use an existing one and map it to some controller input, then assign it as the teleport action in the teleport system profile
Use the existing "Teleport Direction" input action to test and verify dual axis still works

Changes

Implements: https://github.com/XRTK/XRTK-Core/issues/721

Submodule Changes

SDK
Examples

Need to bump the SDK package manifest again once the release is out


Abstract test code out, Create a published test library, re-home the benchmarks

Create the com.android.designcompose.test package to hold testing utilities and functions. This is a new published artifact and will allow users of DesignCompose to test their apps.

This is just the start, and there isn't enough for proper tests yet. The test-fixture from the main DesignCompose library needs to be moved to it, and the host-built Rust libraries must also be embedded in the library. But this does allow me to preserve the unit test in HelloWorld.

Abstract out some of the functions and repeated declarations from the test and AndroidTest code into a common test-internal package
Create an integration-tests/app-common library to hold common app code (currently just the Interfont)
Move the Benchmarks apps to be within the integration-tests directory. This collects all of the code that is used for integration-tests into a single directory, better separating them.
Fix the integrated tests
Add a new Github workflow for making sure that all code compiles in the main project
Reduce the existing workflow that created the maven repository for the reference apps to use to just do that, this should help speed up CI overall.
Add some Android Studio run configs to make it easier to run certain checks, such as making sure the code compiles, compiling everything and testing everything other than integration tests, and doing a test dry run of one of the benchmarks.

I think you'll need to rebase, but this is a good improvement. When do you think we'll be ready to put docs together for folks using DC?

No idea, not until we can spend some time on it. We should do some planning first, and I'll need availability from Rob to help me with certain decisions and with reviews.


docs: add release notes and image bom for AKS Windows images 2023.11B

What type of PR is this?
/kind documentation

What this PR does / why we need it:
add release notes for Windows images with 2023.11B. Reference the PR #3831
Which issue(s) this PR fixes:

Fixes #
Requirements:

[x] uses conventional commit messages

[x] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 79.007%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2243

Relevant Lines:
2839

💛  - Coveralls


TST: adds algo unittest for CLOSE_POSITON event type, adds commission …

Something I should have added to #593. The test can be expanded later to include all datasource types.

Merged with a cherry-pick. Thanks, Warren!


[librdakafka] add new port librdkafka

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: alexander-smyslov sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Looks like this and #5921 for the same library were submitted on the same day.

I see build failures on x64-windows-static, x64-uwp, and arm-uwp.  Are these failures expected?

Same library exists https://github.com/Microsoft/vcpkg/pull/5921

Hi! @alexander-smyslov This seems your first PR on GitHub. If you'd like to finish it, I will close mine.
BTW, the reason I used rdkafka as the package name is that the exported CMake target has this name. If we use librdkafka as the package name, we may need some more code to make the CMake config file appear in the right place.

Hi
I close my pull request because your request is first.
librdkafka   is official library name. i suggest use it. Port can produce
dll with different name or several dll.   may be need ask point of
view   librdkafka
owner.
On Thu, Apr 4, 2019 at 2:27 PM myd7349<EMAIL_ADDRESS>wrote:

Hi! @alexander-smyslov https://github.com/alexander-smyslov This seems
your first PR on GitHub. If you'd like to finish it, I will close mine.
BTW, the reason I used rdkafka as the package name is that the exported
CMake target has this name. If we use librdkafka as the package name, we
may need some more code to make the CMake config file appear in the right
place.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vcpkg/pull/5927#issuecomment-479876301, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AjY3LM6dj8zcDAp3awIXDKLkTMA6M5ckks5vde-hgaJpZM4cZ7XW
.

Hi! @alexander-smyslov I think you are right. I will change the package name to librdkafka.


Update app.html to include p5.min.js from cdnjs

Done. Thanks for this beautiful sketch. I'll will be using it as an example of moving between p5.editor and github in my class at NYU-ITP: https://github.com/jht9629-nyu/IM-Screens-2023


version 3 roadmap

As mentioned in https://github.com/badges/shields/pull/3507 there are a number of changes we've discussed to the NPM package which are not backwards-compatible. It makes sense to batch them into a version 3.

[ ] Validate inputs (in progress: https://github.com/badges/shields/pull/3586 )
[ ] Remove legacy properties deprecated in 2.2.0
[ ] Replace the BadgeFactory class with a single function

Now that we're using anafanafo for text measurement, we don't need the class wrapper anymore
Depend on the public interface internally instead of relative imports
See https://github.com/badges/shields/pull/2336

[ ] Expose the concept of logos, add SimpleIcons as a peer dependency (this is actually just a new feature not a BC break, so we could push this back to a minor, but its probably nice to think about in this block of work)
[ ] Publish the package to a new/better name, change repo dir, mark gh-badges dead/unmaintained

See https://github.com/badges/shields/pull/2300#issuecomment-438034266

Anything else that should be on that list?

If we change the package name (which I'm in favor of), does it make sense to start it with major version 3? I'm not sure what the semver protocols are for renamed packages.
It's probably best to keep it v3.x to avoid  confusing existing users of gh-badges w/2.x or 1.x though right?

Your list looks good! 👍
Two I might add:

[ ] Make dependencies for raster support optional (this will make the installed / bundled footprint much smaller)
[ ] Finish converting to template strings, dropping DoT (#2428)

I agree with keeping the version scheme the same so the new package would still be 3.x. It'll be the same library, with a new name.

one more..

[ ] Either drop raster support from the CLI or add it to the library (see https://github.com/badges/shields/pull/3586#discussion_r295802787 , https://github.com/badges/shields/pull/3875#discussion_r314467517 for discussion )

What about adding a typedef file to the package to make it easier to use from TypeScript (assuming there isn't already one under DefinitelyTyped)?

Presumably adding typescript defs is a non-breaking change, in that consuming them is optional? If so, we could add it in a minor.
As I've got into the v3 work, I'm already starting to think logos might be better pushed back to a minor too so we can limit 3.0 to just the non-backwards-compatible stuff.

Presumably adding typescript defs is a non-breaking change, in that consuming them is optional? If so, we could add it in a minor.

Sure! I'd personally prefer to avoid having to create a typedef for the current/v2 API given the deprecation/plans for v3, but I don't have any objections to creating and including a v2 typedef in a minor bump too

Aah sorry. I was thinking more that we can make only the non-backwards-compatible changes in 3.0 but typedefs (for v3) could be added in a 3.1 (or 3.x), as opposed to doing a 2.3 release with typedefs.

Reviewing this, the remaining tasks are:

Either drop raster support from the CLI or add it to the library (I'll come back to this one..)
Expose the concept of logos, add SimpleIcons as a peer dependency (this is a new feature, so lets punt it to 3.1)
Add typescript definitions (this is a new feature, so lets punt it to 3.1)
Change the application code to depend on the public interface internally instead of relative imports (this isn't essential to get 3.0 done but its pretty small so I'll just do it)
Publish the package to a new/better name, change repo dir, mark gh-badges dead/unmaintained (We'll look at this in the final PR from v3-dev to master. I'll also finalise the docs/changelog, etc in this PR)

..so the remaining big thing is point 1: Either drop raster support from the CLI or add it to the library (or just ignore it and leave things as they are).
We never really reached an agreement on this, so I did both and submitted 2 competing PRs:

#4523 - Drop raster support in package CLI
#4524 - Support raster formats in makeBadge

Seeing both implementations might help us reach a decision. I think having seen what supporting the raster formats in makeBadge() looks like, I think my preference is to drop it in both, or just leave it as it is (CLI supports raster, but makeBadge() doesn't)
The other thing to think about is point 5 - changing the package name. I'm sure we've discussed this, but I'm coming up blank trying to find the conversaions:

Did we agree on a new name for the package? I know we don't like gh-badges, but I can't remember if we decided on a replacement.
Should we start numbering from 3 on the new package name, or go back to 1?
I think it would be a good idea to do one final gh-badges release which just adds a changelog entry advising users to switch to the new package before we deprecate it on NPM. The reason I suggest this is that dependabot (and probably other tools) don't offer upgrades to deprecated packages (see https://github.com/dependabot/feedback/issues/163 ) so I reckon doing one final release communicating the change will give us the maximum chance of communicating the change to users who rely on automated tooling for dependency management.
I'd also like to get shields.io running the latest package code in production before we do a stable release of the new package just so we've done some in-the-wild testing.

Seeing both implementations might help us reach a decision. I think having seen what supporting the raster formats in makeBadge() looks like, I think my preference is to drop it in both, or just leave it as it is (CLI supports raster, but makeBadge() doesn't)

Should we also try to poll the community for feedback and to gauge importance? We did when making a similar change for Shields.io, although that's admittedly a larger audience that was impacted

I think it would be a good idea to do one final gh-badges release which just adds a changelog entry advising users to switch to the new package before we deprecate it on NPM.

Agreed. I can't find any examples ATM, but I know I've seen a final version publish that adds a pointer/doc to the top of readme pointing to the "new" package on some other packages that were renamed. Something like..
gh-badges as been renamed to [foo](new package url)...

I will review this issue tomorrow or at the weekend, pick out the bits we didn't do into new issues and close this.

I've split the remaining future work from this issue into more specific issues


no models return any output?

cool app!
I have it running on my galaxy note 10 8GB RAM
I uploaded a .gguf a llama7b, I tried calypso-alpha-v2.gguf and a tiny llama lora I made.
It never responds. The dots just keep going.
I've checked logcat. No errors. No bugs. I'm using the latest repo.
If I go back to the page where I loaded the .gguf model. It has a spinning loading wheel and I have to reset the app.

I just checked and it was something to do with llama.cpp thats broken maid_llm, i simply rolled back llama.cpp and its working now
republishing 1.2.3 in justa  few minute so you can give it a try

@danemadsen hey dane I went through the whole setup again, got the app running, no response, no errors. I'm using a tiny-llama model that works with termux. What was the last working version?

@danemadsen hey dane I went through the whole setup again, got the app running, no response, no errors. I'm using a tiny-llama model that works with termux. What was the last working version?

OK that's strange, maybe try going into app settings and clearing cache

@danemadsen I tried a few different releases and just downloaded the APK and skipped building myself. None of them have any responses. I even tried a model you'd shown in the below screenshots.
I am using a Galaxy Note 10 on Android 13 8GB

@danemadsen I tried a few different releases and just downloaded the APK and skipped building myself. None of them have any responses. I even tried a model you'd shown in the below screenshots.
I am using a Galaxy Note 10 on Android 13 8GB

If you want to try one that I know should definitely work try 1.1.8
Its been cited at the prefered working version of a few people who have reached out to me

@danemadsen you nailed it 1.1.8 works. good job on that.
However, it runs on and on and doesn't stop at tags.

I am coming from llama_cpp_python.
Something called OpenBuddy worked well over there.
@register_chat_format("openbuddy")
def format_openbuddy(
    messages: List[llama_types.ChatCompletionRequestMessage],
    **kwargs: Any,
) -> ChatFormatterResponse:
    _system_message = """You are a helpful, respectful and honest INTP-T AI Assistant named Buddy.
Always answer as helpfully and logically as possible, while being safe. Your answers should not include any harmful, political, religious, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.
If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.
You can speak fluently in many languages, for example: English, Chinese.
You cannot access the internet, but you have vast knowledge, cutoff: 2021-09.
You are trained by OpenBuddy team, (https://openbuddy.ai, https://github.com/OpenBuddy/OpenBuddy), you are based on LLaMA and Falcon transformers model, not related to GPT or OpenAI.

"""
    _roles = dict(user="User", assistant="Assistant")
    _sep = "\n"
    system_message = _system_message
    _messages = _map_roles(messages, _roles)
    _messages.append((_roles["assistant"], None))
    _prompt = _format_add_colon_single(system_message, _messages, _sep)
    return ChatFormatterResponse(prompt=_prompt)

Also the ./server from the llama.cpp project output (kept adding </SYS at the ends of the outputs still). Which variable can I strip or replace characters from in which file.

@danemadsen you nailed it 1.1.8 works. good job on that.
However, it runs on and on and doesn't stop at tags.

I am coming from llama_cpp_python.
Something called OpenBuddy worked well over there.
@register_chat_format("openbuddy")
def format_openbuddy(
    messages: List[llama_types.ChatCompletionRequestMessage],
    **kwargs: Any,
) -> ChatFormatterResponse:
    _system_message = """You are a helpful, respectful and honest INTP-T AI Assistant named Buddy.
Always answer as helpfully and logically as possible, while being safe. Your answers should not include any harmful, political, religious, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.
If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.
You can speak fluently in many languages, for example: English, Chinese.
You cannot access the internet, but you have vast knowledge, cutoff: 2021-09.
You are trained by OpenBuddy team, (https://openbuddy.ai, https://github.com/OpenBuddy/OpenBuddy), you are based on LLaMA and Falcon transformers model, not related to GPT or OpenAI.

"""
    _roles = dict(user="User", assistant="Assistant")
    _sep = "\n"
    system_message = _system_message
    _messages = _map_roles(messages, _roles)
    _messages.append((_roles["assistant"], None))
    _prompt = _format_add_colon_single(system_message, _messages, _sep)
    return ChatFormatterResponse(prompt=_prompt)

Also the ./server from the llama.cpp project output (kept adding </SYS at the ends of the outputs still). Which variable can I strip or replace characters from in which file.
I'd also like to hardcode the model path in the file and add the .gguf to an asset folder. Is this possible?
I'm not uploading it to the play store so the APK size isn't a big deal.

yeah 1.1.8 is an old version now.  Damndest thing is that .apk from 1.1.8 responds.
If it helps any, this apk you just posted. I cleared the session because it wasn't responding, went to the llamacpp parameters page and it just hangs on loading and I have to close to app.
I am going to try to build my own version of 1.1.8 because the apk responds. It just needs an different chat format like the one used in llama.cpp server or openbuddy I posted.

give this run a go
https://github.com/Mobile-Artificial-Intelligence/maid/actions/runs/8405308893

@danemadsen The one you just posted doesn't respond. Damndest thing is that .apk from 1.1.8 responds.
If it helps any, this apk you just posted. I cleared the session because it wasn't responding, went to the llamacpp parameters page and it just hangs on loading and I have to close to app.
I am going to try to build my own version of 1.1.8 because the apk responds. It just needs an different chat format like the one used in llama.cpp server or openbuddy I posted.

Yeah go crazy, the actual llama.CPP code isn't that different to 1.1.8 so it shouldn't crash but for whatever reason it is for you. It is working on my devices its just very slow

@danemadsen yeah I just built it from the source 1.1.8 and it is responding, just super slow lol. Like super slow.
What file is the chat template in? How is it using a chat template right now in 1.1.8 before I go digging. Can you explain?
I said hello the output was this.

@danemadsen yeah I just built it from the source 1.1.8 and it is responding, just super slow lol. Like super slow.
What file is the chat template in? How is it using a chat template right now in 1.1.8 before I go digging. Can you explain?

@danemadsen yeah I just built it from the source 1.1.8 and it is responding, just super slow lol. Like super slow.
What file is the chat template in? How is it using a chat template right now in 1.1.8 before I go digging. Can you explain?

chat template should be hardcoded in core.cpp from memory.

@danemadsen cool and do you have any tips on where to add a .replace() type function on the chat output before it is seen.

@danemadsen cool and do you have any tips on where to add a .replace() type function on the chat output before it is seen. .replace(/</, '') type thing?

Yeah its implemented here in the current version:
https://github.com/Mobile-Artificial-Intelligence/maid_llm/blob/4b4a34b88bb6de3f6ee62f7ebbfcba18fb6841f5/src/maid_llm.cpp#L558-L576
and in 1.1.8 its ment to be implemented here but doesnt work well:
https://github.com/Mobile-Artificial-Intelligence/maid/blob/12b504e3bee343c9b9c30b2c9dbeb4b8b0dc8966/src/core.cpp#L232-L298

What part isn't working well that I can try to improve on? Anything specific?

@danemadsen What part isn't working well that I can try to improve on? Anything specific?

specifically the way it attempts to find and remove the antiprompt, also the preprompt didnt work in that version either which is likely why its so fast as in the newer version the preprompt is created / processed which is the proper way of doing things.
I would advise against continuing work from 1.1.8, I know it may be working for you but alot of work has been done in more recent versions to get certain things working.
Recent versions of the app do work, people other than me have tested them its just that phones are very under powered so its slow and its probably always going to be slow on android for certain models.

@danemadsen and one last question. I want to put my .gguf in the .apk when it is built and have the path hard coded. Any direction on this? Sorry for all the questions, you answer lol and I can't step away from this

I wonder why 1.1.8 is working and the others are not for me. It's a good phone the Galaxy Note 10 8GB .. like I said it runs the llama.cpp ./server using termux super fast.
@danemadsen and one last question. I want to put my .gguf in the .apk when it is built and have the path hard coded. Any direction on this? Sorry for all the questions, you answer lol and I can't step away from this

typically you wouldnt store gguf internally within the app because it will make the install size huge and the build time long but if you wanted to you would put it in the assets folder and link it in the Pubspec.yaml

@danemadsen I feel like im begging for pennies but any clearer direction on the linking part I am going to donate to your sponsor thing here soon. You're great man.

@danemadsen I feel like im begging for pennies but any clearer direction on the linking part I am going to donate to your sponsor thing here soon. You're great man.

Its all good
In the pubspec file see here
https://github.com/Mobile-Artificial-Intelligence/maid/blob/main/pubspec.yaml#L87-L88
this tells dart / flutter to include every file you pleace in the [assets folder[(https://github.com/Mobile-Artificial-Intelligence/maid/tree/main/assets) in the build
then to use those files in flutter you do so how is done here
https://github.com/Mobile-Artificial-Intelligence/maid/blob/main/lib/providers/character.dart#L15
if you wanted to pass that file to llama.cpp you would then have to use file.absolute to get the correct path

@danemadsen File("assets/defaultCharacter.png"); thats it? Where in your code should I place File("assets/mymodel.gguf"); what file do you manage the upload path?
On a side note. I have termux loading on boot with termux-boot and then running the llama.cpp ./server. So you can restart the phone or turn it off and you can just open a webview app im making that loads the <IP_ADDRESS>:8080
It's not really a repo, it's more of a process to set it up. Let me know if your curious.

@danemadsen File("assets/defaultCharacter.png"); thats it? Where in your code should I place File("assets/mymodel.gguf"); what file do you manage the upload path?
On a side note. I have termux loading on boot with termux-boot and then running the llama.cpp ./server. So you can restart the phone or turn it off and you can just open a webview app im making that loads the <IP_ADDRESS>:8080
It's not really a repo, it's more of a process to set it up. Let me know if your curious.

The model path is passed into llama.CPP in the local generation.dart file where core_init is called

Ok dam you were right there is an issue its not related to the C++ though its something else, working on it now

@krecicki ok redownload 1.2.3 again and give it a try, should be fixed now

Desktop release works but Android version still doesn't work.

Will try on windows, android doesn't seem to be working still

Will try on windows, android doesn't seem to be working still

its working on my phone now its just super slow. Maybe try uninstalling old version first if you haven't tried that already

Tried that, cleared the storage and cache, still doesn't work. What is making it slow? Compared to when running the same model using llama.cpp using termux, it seems to generate outputs reasonably fast.

@RookieIndieDev Processing the preprompt (All the info on the character page) is what slows it down. Prior to 1.1.8 there was barely any processing that needed to be done before inference that's why 1.1.8 was so fast compared to now.
It takes about 2 minutes to get an output on my phone. Ive also tested it on my tablet and its about the same. Not sure, I know lingering data can break things from time to time though.

@RookieIndieDev Ok try https://github.com/Mobile-Artificial-Intelligence/maid/actions/runs/8450256211
I added a whole bunch of log calls to time everything so you can see whats taking so long

Windows immediately crashes on when clicking the arrow button, where to find the windows logs? Android logs should be show in app settings?

Should've been going for 30 mins at least, still no output on android.

@RookieIndieDev OK this is what the logs should look like on android

@RookieIndieDev and like this on windows

Nope, nothing like that was generated.

Nope, nothing like that was generated.
It has to be some kind of bug caused by lingering files from older versions or something then. Whats the last version that's working for you then?

It definitely should be working though because Ive tested it on 3 different android devices, 2 different Windows computer, 1 Linux computer.
Whats the details of your systems? Windows 10 i thought you said and what version of Android?
All i can keep recommending is clear the cache in app settings and make sure older versions are uninstalled

On windows 10, yes. On windows, I deleted the old files that were download and extracted the new archive. I am on android 11. I will try, uninstalling and reinstalling, see if that works. Does windows take other setups to clean up the older versions?

For windows it should be as simple as deleting the version and launching the new one. You may have to clear cache in settings too.

Yeah, I did that. Crashes immediately after pressing the arrow, I posted the error code from the event viewer on the issue that I made previously.

Grabbed the APK from the latest actions build, logging seems to be working but no output so far, must have been 10 mins at least.

Grabbed the APK from the latest actions build, logging seems to be working but no output so far, must have been 10 mins at least.
Your phone only has 3GB of ram? I'm not surprised it doesn't work. Minimum for running models is about 6GB. You're gonna have to stick to the terminal method if you want to run LLM's on a phone with the little of ram.

Oh yeah and your not getting a Model Init timing so its likely somethings failing there:
For reference this is what my timings look like on windows

Something wrong with this specific model?

Getting this error. Tried the latest build with two different models, getting the error both times.


fastSetValue mode (= via javascript) doesn't work in frames / iframes

Schematic reproduction:
<body>
  <input id="a" type="text">
  <frame name="f">
    <body>
     <input id="b" type="text">
    </body>
  </frame>
</body>

Configuration.fastSetValue=true;
$("#a").setValue("a"); // sets value
switchTo().frame("f");
$("#b").setValue("b"); // doesn't set value

Hi @vinogradoff,
I tried to reproduce the issue with iframe and frameset/frame but couldn't.
I tried the following cases:
Configuration.fastSetValue = true;
switchTo().frame("frame");
$("#input").setValue("value");

and
switchTo().frame("frame");
Configuration.fastSetValue = true;
$("#input").setValue("value");

Could you please re-check this issue on your side or provide a public page where you can reproduce it?

Hi, @vinogradoff, I want to reproduce it, but I use iframe with "src" tag, and there is no problem to set the valus, so could reproduce the issue or check your code?
Thankful if you could respons early!

feel free to reopen the issue when received new information.


Integration with https://core.ac.uk/ - the world's largest collection of open access research papers

Feature Request
Is your feature request related to a problem? Please describe.
I have started to use ASReview to discover interesting research papers / knowledge about various topics. The problem is that the small, fixed set of data collections it comes with isn't likely to contain what I am looking for
Describe the solution you'd like
I would like there to be a plug-in which allows me to use the CORE API (https://core.ac.uk/services/api/) to create an initial set of papers to review. The API is limited to 10 pages of 100 articles each, so it's important to help the user formulate a query that returns a specific set of results. Also, some filtering of duplicates may be required.
Describe alternatives you've considered
I've built a small script to query the CORE API /article/search and create a .csv file with title, abstract and URL. This works, however the iteration cycle is rather long and cumbersome - it would be nicer to have it integrated as 1 experience
Teachability, Documentation, Adoption, Migration Strategy
I think most users will naturally understand how to leverage this new source of potential knowledge. I recently discovered CORE after having obtained ASReview and I have no affiliation or know any of their team members, but I suspect they may be interested to collaborate: https://core.ac.uk/about/#team. Both projects seem very much aligned in their philosophy

Thanks for your interest in ASReview!
Currently, ASReview is not designed to support query-based search in external databases.
The general recommendation is to perform a search in one or more external databases of choice (making use of specialized search functionalities in each system) and then import the resulting dataset in ASReview for automated screening.
(NB One suggestion for a multidisciplinary scholarly search engine that is free to access, and allows export as csv to use in ASReview, is [Lens.org](https:/. Lens includes data from Crossref, PubMed, Microsoft Academic (and some full-text from CORE) and allows export of up to 50,000 article records.  NB An account is required to enable export)

@jbemmel: Together with Rens and the ASReview team, we're working on accessing the dataset OpenAlex (the continuation of Microsoft Academic that soft-launched early 2022). If you're interested in hearing more about the pilot or using it for your usecase, please drop me a line at<EMAIL_ADDRESS>


Clarification on Permissions via Graphql API

What are you trying to achieve?
I have installed saleor platform with docker. From dashboard I am able to add a new product. But from api I am getting permission error. I have granted all the permission from dashboard. Still I am getting the same error. Please let me know how to resolve the issue.
Steps to reproduce the problem
Query.
mutation ProductCreate($input: ProductCreateInput!) {
productCreate(input: $input) {
errors {
...ProductErrorWithAttributes
__typename
}
product {
id
__typename
}
__typename
}
}
fragment ProductErrorWithAttributes on ProductError {
...ProductError
attributes
__typename
}
fragment ProductError on ProductError {
code
field
message
__typename
}
Variables
{
"input": {
"attributes": [
{
"id": "QXR0cmlidXRlOjM2",
"values": [
"cotton"
]
}
],
"category": "Q2F0ZWdvcnk6MjU=",
"collections": [
"Q29sbGVjdGlvbjo1"
],
"description": "{"time":1719572752120,"blocks":[{"id":"8LfOJVHp94","type":"paragraph","data":{"text":"sdfsdf"}}],"version":"2.24.3"}",
"name": "Hello",
"productType": "UHJvZHVjdFR5cGU6MjE=",
"rating": "5",
"seo": {
"description": "",
"title": ""
},
"slug": "",
"taxClass": "VGF4Q2xhc3M6Mg==",
"weight": 34
}
}
Header
{
"Authorization": <"token">
}
What did you expect to happen?
Create product without any permission error.
Logs
No response
Environment
Saleor version: …
OS and version: …

Hey,
Aren’t you missing „Bearer” part in authorization header?
https://docs.saleor.io/docs/3.x/api-usage/authentication
POST /graphql/ HTTP/1.1
...
Authorization: Bearer

Hi delemeator,
Thanks for your awesome response. The issue is resolved.
Regards,
Navin Krishna T B


Team 3, solve euler equation to get b2

In the euler.py script, our first function defines the euler equation error and our second function solves for the amount of savings that optimizes euler equation.

Get rid of those changes to the README.md, get rid or the two .DS_Store files. @evanjflack will submit a PR that fixes the .gitignore.

@Alexander-Weinberg The args tuple elements are not unpacked inside each function. Did you guys test this? And I would like you to get rid of extra spaces between the function docstrings and the executing code in the functions.

@rickecon Should be all fixed. Deleted the DS and edited readme

@Alexander-Weinberg asked to close this.


[Question] How do you manage to implement authorization ?

Hi,
I want to give the bundle a try, but I can't figure out how to implement authorization without breaking everything. I've used the LexikJWT bundle without problems, but how do I manage to limit certain actions to certain roles ?
I figured that if I want to use voters, I could use my own controller or Resource but it seems quite troublesome.
Any idea ?
(In a more concrete way, I'm kinda looking for a built-in option to do this, one that I could configure in the same way than the rest...)
Thanks ! (And great work by the way)

There is 2 possible ways:

for simple case, specify the role and credentials you want in app/config/security.yml: http://symfony.com/doc/current/book/security.html#securing-url-patterns-access-control Thanks to the REST architecture, it should be very straightforward.
if you have more advanced needs, use Symfony and ApiBundle events: https://github.com/dunglas/DunglasApiBundle/blob/master/Resources/doc/the-event-system.md

Creating a custom controller should be your last resort (this is considered bad practice).

As it's a recurrent question, maybe it would be worth to add a little word on it in the doc with one or two example.

It definitely deserves an exhaustive cookbook entry!

Ok, so I could implement the check against the voters in an event listener. Got it.
Thanks.
For me the issue is solved, do you want to leave it open for the doc-editing part ?

Leave it open please.

Yep keep it open for now :)


How to change default value of 'match'

For example, Home / Articles / Title / Edit this case is use :exact
I think usually have this case.
Anyway, I found how to change default match value, and check configuration
Unfortunately not support this feature yet

If I understand correctly, you wish to add :match configuration option to setup default behaviour for breadcrumbs. In that case, please submit PR and ideally a test case to proof implementation.

That’s what I’m saying ;)
Ok. I'll try when i have time!

Released v0.6.2 with this change. Thanks!


Add documentation for cache usage

This change adds simple documentation for the cache functionality added in https://github.com/deislabs/oras/pull/203

Sure thing @jdolitsky I've opened a PR here.
Will this repository be archived or moved to the oras-project org?
It might be worth adding the documentation here as well to help other users in the meantime.

Thank you. This repo will be relocated to @oras-project as the CLI component.
Sure, we can merge here in the meantime too


add plot_trace

Closes #13
This follows the decision that plot_trace will be a plot without the densities (kde or histograms).
I started with this example because it seems simple enough to get familiar with the code. Please let me know what I am doing wrong.
Also not sure what should I do to add divergences, given that divergences are defined in a separate group.
This is how the default plots look like for the centered_eight dataset

and this is with some customization
plot_trace(post, var_names=["mu", "tau"],
sample_dims=["draw"],
pc_kwargs={"plot_grid_kws": {"figsize": (12, 7), "sharey":"row"}, "col_wrap":4})

:books: Documentation preview :books:: https://arviz-plots--1.org.readthedocs.build/en/1/

Welcome to Codecov :tada:
Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.
Thanks for integrating Codecov - We've got you covered :open_umbrella:

Also not sure what should I do to add divergences, given that divergences are defined in a separate group.

There is no clear way to go about that yet. I think the clearest way to go about it is allowing to define different data when looping/facetting than when plotting

Is this ok to merge? Or what else should I do?


Facet prefix parameter

Is there a way to specify the facet prefix for a facet field? See: https://cwiki.apache.org/confluence/display/solr/Faceting#Faceting-Thefacet.prefixParameter
Btw. @diegobrum great work. Thanks for all your efforts.

Hi @UncleZen
Tks a lot.
In current version and using fluent api, no :/
But, you can do this (ungly, but works):
.Any("f.<fieldname>.facet.prefix", "some-prefix")

Hi @diegobrum
Thank you very much for such a quick response.
I have been working for quite some time on a project that uses Solr and SolrNet as .NET query library. SolrNet did suit our needs perfectly fine, but now that we are converting this application to ASP.NET Core we can no longer use it. Therefore, we decided to go for Solr-Express, which we love so far. This is to give you some context as to why I decided to fork your project and and fix the issue with facet constraints prefix by changing the interface IFacetFieldParameter and some other classes (https://github.com/UncleZen/solr-express).
If you'd like to include these changes in your project, please let me know so that I can issue a Pull Request at any time.
Next, we need  to tackle the Solr Dynamic Fields (https://wiki.apache.org/solr/SchemaXml#Dynamic_fields). I have a pretty good idea how to make it work in Solr-Express and I should be able to push this changes to GitHub pretty soon. I'll keep you updated. If you agree, we would love to contribute to your project.
Cheers!
Zen

Hi @UncleZen
Happy to ready about this. Of course I agree with your contribution 😄
I'm had created a new branch (called v5) to simplify project's code base, improve performance, create better DI packages and other stuffs (more details in #187), take a look in this branch, some things like facet.prefix (https://github.com/solr-express/solr-express/commit/ab2cd575c58729e53048385dd5e1685f03760988) and value InList (https://github.com/solr-express/solr-express/commit/ea354b352a85cf51b96d4d56fecc9517edf07b52) is easier to do in this new code base.
About dynamic fields, what's your thoughts?

Ok then. I will fork the v5 branch later in the evening and add these changes to the newly created fork. I will let you know when done.
As far as the dynamic fields are concerned, below is my solution that works fine for us:

Add two properties to the IFieldsParameter<TDocument> interface (string FieldSuffix { get; } and string FieldPrefix { get; }).
Change the signature of IFieldsParameter<TDocument>Configure method to: IFieldsParameter<TDocument> Configure(string prefix, string suffix, params Expression<Func<TDocument, object>>[] expressions)
Change the FieldsParameter<TDocument>.Execute method to take into consideration the field prefixes and suffixes like this:

public void Execute(JObject jObject)
{
    var jArray = (JArray)jObject["fields"] ?? new JArray();

    if (Expressions != null)
	{
		foreach (var expression in Expressions)
		{
			var fieldName = this._expressionBuilder.GetFieldNameFromExpression(expression);

			if (fieldName.StartsWith("_"))
			{
				jArray.Add($"{Suffix}{fieldName}");
			}
			else if (fieldName.EndsWith("_"))
			{
				jArray.Add($"{fieldName}{Suffix}");
			}
			else
			{
				jArray.Add(fieldName);
			}
		}
	}
	jObject["fields"] = jArray;
}

Change ISolrSearchExtensions.Fields extension method accordingly etc...

As you can see the field prefix and suffix is global to all dynamic fields for the current search, which works fine the way we use dynamic fields (I have tested and it works fine). This solution however, would an issue if the prefix/suffix is not the same across all fields. In such a case we would have to come up with a different solution. One solution that comes to my mind could be to change the signature of the IFieldsParameter<TDocument>.Configure method to let's say: IFieldsParameter<TDocument> Configure(string suffix, params Expression<Func<TDocument, Tuple<object, IDynamicParamterAddition>>>[] expressions);...
Let me know what you think.

Good approach, but I have some considerations:

I think than a minor percent of people use dynamic fields (I don't have data to affirm with 100% sure, I only have a feeling about this).
Create a conplexity solution to create a change to use dynamic fields thinking in a global suffix/prefix or in case-to-case suffix/prefix.

I don't feel comfortable to change signatures in pro to a minor user share.
Maybe a another approach.. What do think about use SolrFieldAttribute to do this work?

Add 3 properties in Attribute. bool IsDynamicField, string DynamicFieldPrefixName, string DynamicFieldSuffixName
Add 2 properties in GlobalSettings. string GlobalDynamicFieldPrefixName, string GlobalDynamicFieldSuffixName
Change the FieldsParameter<TDocument>.Execute method to take into consideration the field prefixes and suffixes like this:

private readonlye SolrExpressSettings _solrExpressSettings;

public void Execute(JObject jObject)
{
    var jArray = (JArray)jObject["fields"] ?? new JArray();

    if (Expressions != null)
	{
		foreach (var expression in Expressions)
		{
			var dynamicSettings = this._expressionBuilder.GetFieldDyanamicSettingsFromExpression(expression);
			var fieldName = this._expressionBuilder.GetFieldNameFromExpression(expression);

			if (dynamicSettings.IsDynamicField)
			{
				prefix = dynamicSettings.DynamicFieldPrefixName ?? this._solrExpressSettings.GlobalDynamicFieldPrefixName;
				suffix = dynamicSettings.DynamicFieldSuffixName ?? this._solrExpressSettings.GlobalDynamicFieldSuffixName;
				fieldName = $"{prefix}{fieldName}{suffix}";
			}

			jArray.Add(fieldName);
		}
	}
	jObject["fields"] = jArray;
}

In your approach, I like clean code, use fluent API and make things easy to understand, but increase complexity.
In my approach, I like simple code, but increase automagically in code.
What do you think?
Happy Easter! / Joyeuses Pâques!

This is a very good (nice and clean) solution. It would, however, work only in cases when field prefix/suffix is a constant. In our app this approach would not work because the suffix varies and depends on the organization context. I will try to explain what I mean with this, in the example below :
Let's say we receive the article https://blogs.windows.com/buildingapps/2017/04/05/windows-10-creators-update-creators-update-sdk-released. Before we store it in Solr we filter it. Basically we try to find keyword matches based on settings of each organization that has signed up with our web app.
E.g. for Organization A (Id: 52) keyword hits would be  "Win 32 apps" and "Bluetooth device" and we store this in the dynamic field keywordhits_5=["Win 32 apps", "Bluetooth device"].
For Organization B (Id: 32) based on their settings we find a completely different set of matches: "Surface Dial", "XBox" and "HoloLens". This set of matches will be stored in the field keywordhits_32 = ["Surface Dial", "XBox", "HoloLens"].
So when a user views the this article in the context of the Organization A (http://myapp.com/org-a/article/some-article-id) they will see Win 32 apps and Bluetooth device highlighted. When they view the same article in the context of the Organization B (http://myapp.com/org-b/article/some-article-id) the corresponding keywords hits will be highlighted.
With other words, the suffix or prefix has to be specified  at the time when the search is performed and based on the organization context.
Cheers!
Zen

Wow! Complex, isn't? 😄
Ok... hum... maybe a mix in approaches.
What do you think in add some method in Search to control this case? Like this:
Approch

Add 3 properties in Attribute. bool IsDynamicField, string DynamicFieldPrefixName, string DynamicFieldSuffixName
Add 2 properties in GlobalSettings. string GlobalDynamicFieldPrefixName, string GlobalDynamicFieldSuffixName
Create a new Parser (to customize field settings) with 3 properties Expression Field, string DynamicFieldPrefixName, string DynamicFieldSuffixName
Change the FieldsParameter<TDocument>.Execute method to take into consideration the field prefixes and suffixes like this:

private readonlye SolrExpressSettings _solrExpressSettings;

public void Execute(JObject jObject)
{
    var jArray = (JArray)jObject["fields"] ?? new JArray();

    if (Expressions != null)
	{
		foreach (var expression in Expressions)
		{
			// GetFieldSettingsFromExpression merges settings from SolrFieldAttribute and some custom settings provided by item#3 in list above
			var fieldSettings = this._expressionBuilder.GetFieldSettingsFromExpression(expression);
			var fieldName = fieldSettings.Name;

			if (fieldSettings.IsDynamicField)
			{
				prefix = fieldSettings.DynamicFieldPrefixName ?? this._solrExpressSettings.GlobalDynamicFieldPrefixName;
				suffix = fieldSettings.DynamicFieldSuffixName ?? this._solrExpressSettings.GlobalDynamicFieldSuffixName;
				fieldName = $"{prefix}{fieldName}{suffix}";
			}

			jArray.Add(fieldName);
		}
	}
	jObject["fields"] = jArray;
}

Considerations

If developer only needs to use dynamic fields using global prefix and suffix names, itens 1 and 4 works well
If developer only needs to use dynamic fields using specific prefix and suffix names by field, itens 1, 2 and 4 works well
Finally, in your case, itens 1, 3 and 4 works well

What do you think?

Yeah, a bit complex indeed.
I agree with your solution as it allows the developers to choose the least complex approach that suits their needs. I will be working on this in the coming days. I'll keep you updated.

Hi @diegobrum,
I am using the branch v.5.0 to run a very simple query in a .NET Core Console app. See code below:
IServiceCollection services = new ServiceCollection();

var options = new SolrExpressOptions();

services = services.AddSolrExpress<ReadOnlyDocument>(builder => builder
.UseHostAddress("http://infomediadev/solr/newsdesk")
.UseSolr5()
);

var serviceProvider = services.BuildServiceProvider();

var docs = serviceProvider
			   .GetRequiredService<DocumentSearch<ReadOnlyDocument>>();

IEnumerable<ReadOnlyDocument> documents;
IEnumerable<FacetKeyValue> facets;
Information information;

var qry = docs
	.Fields(d => d.Id, d => d.Title, d => d.DepartmentId)
	.FacetField(d => d.Categories)
	.Filter(d => d.Id, "205325092");

qry.Execute()
	.Information(out information)
	.Document(out documents)
	.Facets(out facets);

foreach (var document in documents)
{
	Console.WriteLine($"{document.Id} => {document.Title}");

	foreach (var deptId in document.DepartmentId)
	{
		Console.WriteLine($"{deptId}");
	}

}

But for some reason it is complaining that DocumentSearch type has not been registered. Any ideas?
As well, is there an implementation for the interface ISearchItemCollection?
Thanks!
Zen

Hi @UncleZen
Sorry for late
Please, get code again and check https://github.com/solr-express/solr-express/blob/v.5.0/example/SimpleUse.NetCore/Program.cs

No problem at all. Thanks @diegobrum!

This fixed the issue. Thanks @diegobrum.
We are experiencing major issues when opening the SolrExpress solution in VS 2015.  Attached is one of the errors we get when opening the SolrExpress solution in VS 2015. The only way for us to test SolrExpress so far has been to open the solution in VS 2017 which converts all projects to csproj. The conversion usually is completed without any issues whatsoever.
Are you planning to convert the xproj to csproj?
Cheers!
Zen

Hi @UncleZen !
Funny, in my machine works fine :/
Btw, yes, I want to migrate to VS 2017

Thanks @diegobrum!

Hi @UncleZen , please take a look in v5

Thanks @diegobrum. I'll have a look at it soon.
Zen


Adds flag to docker container.

To use host resources, this avoids Chrome crashing in container due to it not GCing on time.

@rcorral could you please add an empty line in your commit messages to properly separate the subject from the message body? This will make it easier to brows thought the list of logs.

L👀ks good!


HDDS-3989. Display revision and build date of DN in recon UI

What changes were proposed in this pull request?
People can get more detailed version info about DN in recon UI.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3989
How was this patch tested?
Test in docker-compose environment

Test in pnpm run dev and code is linted with yarn run lint:fix

/retest

//retest

/help

/retest

Log:     /mnt/ozone/hadoop-ozone/dist/target/ozone-0.6.0-SNAPSHOT/compose/upgrade/result/log.html
Report:  /mnt/ozone/hadoop-ozone/dist/target/ozone-0.6.0-SNAPSHOT/compose/upgrade/result/report.html
cp: cannot stat '/mnt/ozone/hadoop-ozone/dist/target/ozone-0.6.0-SNAPSHOT/compose/upgrade/result/*.out*': No such file or directory
Log:     /mnt/ozone/hadoop-ozone/dist/target/ozone-0.6.0-SNAPSHOT/compose/result/log.html
Report:  /mnt/ozone/hadoop-ozone/dist/target/ozone-0.6.0-SNAPSHOT/compose/result/report.html
Exception in thread "main"
##[error]Process completed with exit code 1.

trigger CI again

@vivekratnavel Since the CI passed, can we merge this PR. Thanks.

@runitao Thanks for working on this!

Hi, thanks for the contributions @runitao, it's very useful for the UI.
It looked good to me, but when I analyzed the network traffic found that the two new fields are added two all the requests as the DatanodeInfo protocol is a shared type.
For example when I do createKey or block allocations the new fields are added. Which means that the performance is worse in case of many small keys. I think it can be better to further improve it and add the fields only to the SCM registration type.

@elek Good catch! I have created a jira to track this - https://issues.apache.org/jira/browse/HDDS-4039

Thanks for your suggestion @elek. And thank you for assigning HDDS-4039 for me, @vivekratnavel, I will fix that.


about rolling_oneline_management

❓ Questions and Help
I used OnlineManager.get_signal() to get the signal for next trade date, but what I really want is the buy/sell list of stocks. Is there any way to generate the list? Or I have to do that by myself?
We sincerely suggest you to carefully read the documentation of our library as well as the official paper. After that, if you still feel puzzled, please describe the question clearly under this issue.

@yieldbook   this requires an online portfolio management module.
We have a portfolio management module, but it is not online.
The trading module is under refactoring which considers online portfolio management.
It is under development  https://github.com/microsoft/qlib/pull/438
Please stay tuned.
Thanks


Run prettifier for all files

I have run the prettify command for all files, to not getting error every time for new files

@mohammadranjbarz Please fix the conflicts


Submitted selfie
Getting message "Identity Submited"
Showing "Verification in Progress..."
In 2 min showing message "Failed to create" and below "Verification failed"
The verification failed. See attached pic.

Repeated same Process BUT with different face picture and Surename:

Chose "Identity Card",
Chose "Lithuania" as a country
Submit licence (front): Submitted a front of my ID with modified picture and modified Surename
Submit licence (back): Submitted a back of ID with modified Surename.
Submitted selfie
Getting message "Identity Submited"
Showing "Verification in Progress..."
It took way longer when first time in 7 min showing message "Failed to create" and below "Verification failed"
The verification failed. See attached pic.

Device:
iPhone 7
iOS version: 14.0.1

confirmed:ID3
DocumentType:verified
Nationality:verified
DeviceDetails:verified
Experience:verified
Screenshot:verified

confirmed:ID3
DocumentType:verified
Nationality:verified
DeviceDetails:verified
Experience:verified
Screenshot:verified


Inline math while publishing notes

Currently, block math mode is supported while publishing or exporting notes.  It would be great to have inline math supported using the inline math delimiters set in the markdown enhanced preview settings.

Thanks for the suggestion. Will add this to the publishing, probably, sometime in November will be the rough timeline!

This is now supported :)

Thanks!


Added test for repeating cookies in response headers

Found this issue using fastapi.  I haven't tracked down the cause.  It seems every additional layer of redirection doubles the cookies in the header.  No clue if this would actually break anything, but it seems like incorrect behavior at any rate.

the problem is that a call to solve_dependencies shares a single Response with its recursive calls for child dependencies, which may cause the original to have its headers.raw extended redundantly:
        solved_result = await solve_dependencies(
            dependant=use_sub_dependant,
            ...
            response=response,
            ...
        )
        (
            ...
            sub_response,
            ...
        ) = solved_result
        sub_response = cast(Response, sub_response)
        response.headers.raw.extend(sub_response.headers.raw)
        if sub_response.status_code:
            response.status_code = sub_response.status_code

one obvious solution that comes to mind is to check whether sub_response is not response before using it to update response

Thanks for discovering this and creating the tests @scottsmith2gmail ! :detective: :bug: :heavy_check_mark:
I just merged the fix by @obataku including your tests, so we can close this one. :rocket:


Reactor Usage

Asking a question and adding reactor example for some future poor schmuck like myself that spent the afternoon trying to figure out why my reactor was not called.
The key is understanding that that most generated / fake clientsets add in a "catch-all" reactor for the ObjectTracker that will always terminate the ReactorChain before it gets to yours.  So, although you'd think .AddReactor would work, in practice it's never called.
Consider this snippet in which the ReactorFunc will never be called:
import (
	"k8s.io/client-go/kubernetes/fake"
	fakebatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1/fake"
	k8stesting "k8s.io/client-go/testing"
)
fakeClient := fake.NewSimpleClientset()
fakeClient.BatchV1().(*fakebatchv1.FakeBatchV1).Fake.AddReactor("*", "*", func(action k8stesting.Action) (bool, runtime.Object, error) {
    t.Logf("I'm never triggered :(")
    return true, nil, nil
})

Looking at https://github.com/kubernetes/client-go/blob/master/kubernetes/fake/clientset_generated.go, we see this code:

// NewSimpleClientset returns a clientset that will respond with the provided objects.
// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,
// without applying any validations and/or defaults. It shouldn't be considered a replacement
// for a real clientset and is mostly useful in simple unit tests.
func NewSimpleClientset(objects ...runtime.Object) *Clientset {
	o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())

        ...

	fakePtr := testing.Fake{}
	fakePtr.AddReactor("*", "*", testing.ObjectReaction(o))

        ...

	return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}}
}

In the testing/fake.go base clientset, one finds the Invokes function that is called by all the derived fake client implementations:

// Invokes records the provided Action and then invokes the ReactionFunc that
// handles the action if one exists. defaultReturnObj is expected to be of the
// same type a normal call would return.
func (c *Fake) Invokes(action Action, defaultReturnObj runtime.Object) (runtime.Object, error) {
	c.Lock()
	defer c.Unlock()

	c.actions = append(c.actions, action)
	for _, reactor := range c.ReactionChain {

		if !reactor.Handles(action) {
			continue
		}

		handled, ret, err := reactor.React(action)
		if !handled {
			continue
		}

		return ret, err
	}

	return defaultReturnObj, nil
}

So the first ReactorFunc that handles the action will be called.  Since there is always a *, * in the front if the reactor chain, any other one added via the AddReactor function will never be called.
The workaround is to use PrependReactor instead:
fakeClient := fake.NewSimpleClientset()
fakeClient.BatchV1().(*fakebatchv1.FakeBatchV1).Fake.PrependReactor("*", "*", func(action k8stesting.Action) (bool, runtime.Object, error) {
    t.Logf("This works :)")
    return true, nil, nil
})

My question is, am I doing this wrong?  How is the AddReactor function ever useful?  I would like to write idiomatic tests but unclear on the reactor usage.

/remote-lifecycle rotten
Still awaiting a response here.  Thanks.

/reopen

I just faced the same issue and was wondering if this behaviour is by design. The most confusing part is that there doesn't seem to be a way to chain ReactionFuncs, although those functions are stored in a field called ReactionChain within testing.Fake.
@pcj suggests to use fake.ClientSet.PrependReactor(), but even this is flawed because the chain is broken after the first "handled" ReactionFunc. As a result, it is impossible to both apply transformations to an object and create this object in the testing.ObjectTracker (which is not returned by fake.NewSimpleClientset(), to make things even harder).
Would proposed changes still be considered at this point?

The simplest thing that comes to my mind: a ReactionFunc can return whether it should be the last function in the chain (type ReactionFunc func(action Action) (handled, last bool, ret runtime.Object, err error)).
An alternative proposal: fake.ClientSet could provide an accessor to its testing.ObjectTracker.

@pcj suggests to use fake.ClientSet.PrependReactor(), but even this is flawed because the chain is broken after the first "handled" ReactionFunc. As a result, it is impossible to both apply transformations to an object and create this object in the testing.ObjectTracker (which is not returned by fake.NewSimpleClientset(), to make things even harder).

as of https://github.com/kubernetes/kubernetes/pull/73601, released in client-go v11.0.0, reactors can mutate an object, then return false, and the mutations are carried along to the subsequent reactors

Aha! One can now mutate actionCopy directly and the state is shared. That's a great improvement, thanks for the pointer @liggitt and sorry for missing the update in v11.
/close

I've been working on this for days...... Thanks ! @pcj


dindc is not loaded on a Fedora workstation

On my fedora workstation, the ~/.bash_aliases is not used.
It uses ~/.bashrc instead which is more common if I'm not wrong... Do you have that on ubuntu as well?
If so, I can send you PR

np! :-)


Set up production heroku environment

We're currently just using staging, but should have a good process for sending stuff to a prod

This is set up, and we've got some invoke tasks for managing code and db push from staging to prod :)


add the typings for the library and test it by duplicating the current examples

there are more typings to be added but for now I have added the ones that were required for all the example applications. Going to follow up by adding more by digging deep into the ones exposed directly by the node add-on.

Awesome, thanks for putting the effort in creating all the typings. Actually the typings seem to be very useful in terms of documentation, too. Great job!


Commbase streamcache

Opening draft PR for HIP improvements and commbase refactoring. I will go through the changes and guard the AMD changes so  to not change Nvidia performance.

Tests are passing now


animateRowAndSectionChanges only works inside didSet for my Model

I have Diff (animateRowAndSectionChanges) working using the didSet for my Model, but I want to be able to use somewhere else in my code
I have a delegate method being triggered whenever my Model is updated, at this stage I need to manually call the animateRowAndSectionChanges, but it does not work even though I am passing the same values for old and new.

Maybe the contents of the table view differ? It is weird indeed. Are you able to provide me with a minimal reproducible example?

Please open the workspace:
https://ufile.io/5jk1i
This works fine:
var model = [Section]() {
        didSet {
            self.swapModels(old: oldValue, new: self.model)
        }
    }

But if I remove the didSet and use the method swapModels found in the bottom of the VC.swift (func receiveModel(model: [Section]) and func refreshModel(model: [Section])) and comment the self.model = model, it does not work.

So your delegates depend on self.model so when you make the moves they use invalid data. They should use new data from the delegate call in order to make it work.

Fundamental error, thanks @wokalski !


Cow: Watch kernjewelers.com

Cow requests the watch of the watch_keyword kernjewelers\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Spevacus in Charcoal HQ


Question: is it a bad idea to use the promise implementation from dexie?

Hi, I've checked the docs and since dexie has it's own Promise polyfill I want to use that throughout my app instead of yet another promise polyfill. It seems that it's not a good idea. I keep getting this kind of errors: TypeError: Method Promise.prototype.then called on incompatible receiver.
Can be that dexie's Promise implementation should only be used by dexie?

I would not recommend using Dexie.Promise as a general Promise polyfill. I think it's better to use some tested polifyll like https://github.com/taylorhakes/promise-polyfill and make sure it is set globally on window object + only do that if typeof Promise === 'undefined' or !window.Promise. Nowadays this is only needed for really old browsers like IE.
Also, in Dexie 2.0 you will no longer need to care for using Dexie.Promise in your application code. It is now safe to use Promise.all(), Promise.race() and new Promise(...) within transaction zones as Dexie will patch the global Promise itself within its own transaction zones, but leave it native outside. Just make sure not to import Promise as a module  - polyfill window.Promise instead in page bootstrap if needed.

thank you. I chose rsvp.js and it works!


Algos visibility

Description

I was talking with a colleague that is interested in graph recommenders. I realized that it is not straightforward for people that don't know the repo to know that sometimes there are quickstart notebooks and sometimes deep dive notebooks.
Not sure what is the best way to give visibility to all the content. Maybe we could consider adding the deep dive into the main readme? Other option could make a comment in the deep dive, referencing the quickstart, and viceversa, in the markdown of the notebook.
@anargyri what do you think?
Related Issues

Checklist:

[ ] I have followed the contribution guidelines and code style for this project.
[ ] I have added tests covering my contributions.
[ ] I have updated the documentation accordingly.
[ ] This PR is being made to staging branch and not to main branch.

Codecov Report

Merging #1542 (6ff3496) into staging (9f19411) will increase coverage by 0.08%.
The diff coverage is 94.25%.

@@             Coverage Diff             @@
##           staging    #1542      +/-   ##
===========================================
+ Coverage    62.12%   62.21%   +0.08%
===========================================
  Files           84       84
  Lines         8397     8442      +45
===========================================
+ Hits          5217     5252      +35
- Misses        3180     3190      +10

Impacted Files
Coverage Δ

recommenders/evaluation/spark_evaluation.py
86.66% <ø> (ø)

recommenders/evaluation/python_evaluation.py
93.68% <94.11%> (-3.21%)
:arrow_down:

recommenders/utils/spark_utils.py
96.15% <100.00%> (+0.15%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 448982d...6ff3496. Read the comment docs.

How about including both deep dive and quick start for each algorithm in the table?
It seems that increasingly people use this table as a comprehensive list of the notebooks that are available.

@laserprec @anargyri when you are available, can you please review again?

@laserprec @anargyri when you are available, can you please review again?

I double checked all the links again. Looks good!


Made GitlabStorageProvider work with Laravel-9 and 10.

The current implementation doesn't work with Laravel-9 and 10, even though composer.json has updated dependencies. The call to the FilesystemAdapter provides only one argument, but it should be using two.
This pull request fixes the issue.
The problem occurs with:
laravel-gitlab-storage: v3.0.0
PHP: 8.1.5
Laravel: v9.52.9 | v10.13.5
Error message is:
ArgumentCountError

Too few arguments to function Illuminate\Filesystem\FilesystemAdapter::__construct(), 1 passed in [...]/vendor/royvoetman/laravel-gitlab-storage/src/GitlabStorageServiceProvider.php on line 27 and at least 2 expected

Thanks for pointing that out!

Tagged and released under version 2.0.4.

@RoyVoetman Cool, thanks for merging. :)


Frequency Result

Hi, I played with the frequency API and the result is a threshold, e.g. [33,118]. What does it mean? Thank you.

Never mind. I found the answer:
"""
A list of two frequency numbers for the given KB item:
- number of facts with the item occuring as subject
- number of facts with the item occuring as object/qualifier-object.
"""


Use node-mime to detect MIME type

No more searching in MIME wiki page :smiley:

Thank you

Thank you as well for fixing this \o/ Released in 1.5.0


Add categories to module details screen

Contains
Just add field "Categories" to module details screen.

How to test
In the attached screenshot you may find changed categories.
I've added "isWorld" just for testing and you can do the same.
Also I've fixed "serverSideOnly" for PolyWorld (PR).
Outstanding before merging
Nothing.

Tested this, and was unable to break it.
Will merge


Set TF_FORCE_GPU_ALLOW_GROWTH=true by default

This is needed to be able to run Fuji v2 70B on GPU without GPU memory OOMs.
@kelvin-zou can likely confirm whether this should be the default or not.

Hmm but we also set a lot of TPU environment variables in launch.py without any if statements. I don't think there is a better place since it needs to happen before jax is started?


Provide prebuilt frameworks for Carthage

Carthage can download prebuilt frameworks if they are attached to a GitHub release.
For example, to prebuild the zip required for 2.0.1:
git checkout 2.0.1
carthage build --no-skip-current
carthage archive PINCache

Attach the resulting PINCache.framework.zip to the release.

The idea would be to checkout master
carthage build --no-skip-current
carthage archive PINCache

then commit the changes and tag that as a release?

Carthage is smart enough to look at GitHub releases (tags) for the resolved version. So if PINRemoteImage is added to a Cartfile at version 2.0.1, Carthage will look for a GitHub release for that tag.
The existing 2.0.0 and 2.0.1 releases are fine as is, they would just need a PINCache.framework.zip attaching.
You want the prebuilt framework to be the same as if it was built from the tag, so it's necessary to check out the tag. Obviously if you are creating the prebuilt framework for Carthage immediately after tagging, master and the latest release tag point to the same commit.

Gave it a go, mind testing it worked for 2.0.1?

Works perfectly, thanks again!


[BEAM-886] Rename NewDoFn to DoFn

R: @aaltay PTAL
Will just have one more PR after this to completely remove the OldDoFn
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

retest this please

Coverage remained the same at 69.681% when pulling dd30c503d27a1da0cafce605425b0d28b867e304 on sb2nov:BEAM-866-rename-NewDoFn-5 into 08e58e1dfd4cc21a24755d21b8241ca4488b0e83 on apache:master.

LGTM


Turn on when power on.

In many bios I have seen options to
"Restore on AC power Loss"
I am using as server so if power cut off and back then then it not turn it on, in bios I did not get option for this.
Is that any chance to turn computer on when power on?

The board has jumper to turn on with power, so use it.

The board has jumper to turn on with ac power, so use it.

Ok thanks it's working fine.


Fava monitors too many files with encrypted beancount

I have my beancount file encrypted with gnupg and stored in ~/file.beancount.gpg. I then start fava with:
fava ~/file.beancount.gpg

As soon as I try to browse the web interface, it takes a long time to respond, my CPU spikes and some seconds later I start seeing random waiter messages on the terminal like:
...
[I 160406 01:38:01 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:03 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/EFFDE65F2237D8113CDD38FDBD79E0355BFFC549
[I 160406 01:38:04 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:06 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/8AE3DACD504E60795ABFCFC8F4A69FC8AFAC2CEE
[I 160406 01:38:07 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:09 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/8AE3DACD504E60795ABFCFC8F4A69FC8AFAC2CEE
[I 160406 01:38:11 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:12 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/7F60412C5A9E781A523F2DD4B0B2011172F526A9
[I 160406 01:38:14 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:15 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/8AE3DACD504E60795ABFCFC8F4A69FC8AFAC2CEE
[I 160406 01:38:17 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:19 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/7F60412C5A9E781A523F2DD4B0B2011172F526A9
[I 160406 01:38:19 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:38:20 handlers:79] Ignore: /home/u/.cache/mozilla/firefox/default/cache2/entries/7F60412C5A9E781A523F2DD4B0B2011172F526A9
[I 160406 01:38:22 handlers:92] Reload 1 waiters: /home/u/.cache/mozilla/firefox/default/cache2/entries/8AE3DACD504E60795ABFCFC8F4A69FC8AFAC2CEE
...

The web interface eventually responds but spends too long trying to monitor other files.
It seems to monitor all files in my home folder including hidden files.
If I move the beancount file to an empty folder I get:
...
[I 160406 01:43:19 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
[I 160406 01:43:20 handlers:79] Ignore: /home/u/new/file.beancount.gpg
[I 160406 01:43:21 handlers:92] Reload 1 waiters: None
[I 160406 01:43:22 handlers:132] Browser Connected: http://localhost:5000/account/Expenses:Food/
...

Ans no additional file is monitored. The web interface is also a lot more responsive.
However both the Ignore: message and the Reload ...: None seems to indicate that changes to the file will be ignored as well that it's still trying to look for other files to monitor but since there's no other file in the folder, it stops.

Thank you for the report! I'm not using encrypted beancount files, so I didn't run into this yet. Will investigate. For now, it's probably easiest to run fava in debug mode which will disable the autoreload.

I had a look at the cause and it seems to be a problem with livereload watchers.
I couldn't find documentation about this but could it be that if server.watch is never called, the server.serve code assumes all files under the current working directory (recursively) are to be monitored?
The problem with having the file encrypted is that beancount returns filename="<string>" (stdin pipe?) causing it to be discarded as a valid file to be monitored. I couldn't find the exact location where the filename is validated and dropped.

@Unode: Sorry for only getting back to this now, running in debug mode seemed like a reasonable workaround to me, but now I want to properly fix this.
Unless we handle the encryption completely in Fava, it's not really possible to use the reloader functionality (as we can't decrypt the file after startup). So I'll just disable it, that should fix this.

Wow - livereload is quite inflexible. If you don't give it any paths to watch, it always watches the current directory... So I've just made sure to add the path of the encrypted file.
This fixes the issue at hand, but support for encrypted files is still not quite bad. Feel free to open an issue with any suggestions on how to improve it.

I've been using the debug mode as suggested without major problems. Browsing or editing the file from the web interface doesn't work but that's a minor inconvenience since I don't do that anyway.
I tried to figure out a way to properly handle encrypted files but several parts of fava would have to be reworked. For instance a lot of code assumes that a file and therefore a filepath will be available. With encrypted files the path is not passed and only the content remains. It has been some time since I had a look but I vaguely remember that this went all the way to beancount. It handles the two differently.
As for the reloading mechanism, it's probably better to not have it at all if we are dealing with encrypted files. It might be that the first access prompts for a password and if the secret is not kept on an agent it will be requested again on next use, which would be the case when reloading the file. The prompt might happen on a TTY or via a GUI element which somewhat breaks with the server model.
I haven't looked at this in a while but last time I checked it was a considerable amount of work to implement.

Thanks for the feedback.
My last fix wasn't quite perfect, it would still run the livereloader unnecessarily. I also broke the loading of encrypted files in a separate commit... Should be fixed now (83938ae). If you start fava on a single encrypted file, the reloader is not used at all, but if you start it on several, of which not all are encrypted then the reloader will be used.


fix: removing privider value from regular clusters

Signed-off-by: zhuzhenfan<EMAIL_ADDRESS>
What type of PR is this?
/kind bug

What this PR does / why we need it:
The cloudprovider controller affects the regular cluster because of the extra value of "Provider" added when the regular cluster is created
Which issue(s) this PR fixes:

Fixes #278
Special notes for reviewers:
@x893675 @lixd

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

/cc @lixd

Codecov Report

Merging #279 (0bfe371) into master (7e6eb0e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #279   +/-   ##
=======================================
  Coverage   13.07%   13.07%
=======================================
  Files          98       98
  Lines       15408    15408
=======================================
  Hits         2014     2014
  Misses      13154    13154
  Partials      240      240

/lgtm cancel

/approve


chore: remove six and switch to native python3 syntax

Python2 support was dropped in an earlier release already, no compatibility library required anymore.

Codecov Report

Merging #183 (afe82bb) into main (16c84d5) will decrease coverage by 0.05%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##             main     #183      +/-   ##
==========================================
- Coverage   18.36%   18.30%   -0.06%
==========================================
  Files           9        9
  Lines        1067     1065       -2
==========================================
- Hits          196      195       -1
+ Misses        871      870       -1

Impacted Files
Coverage Δ

ansiblelater/utils/yamlhelper.py
0.00% <0.00%> (ø)

ansiblelater/logger.py
86.45% <100.00%> (-0.14%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 16c84d5...afe82bb. Read the comment docs.


TypeError: t._v is not a function

Any idea why I am getting this error:
TypeError: t._v is not a function
at Proxy.render (eval at

I added below code in my blade.php template:
<autocomplete1
                                                                url="/api/list"
                                                                anchor="name"
                                                                >
                                                        </autocomplete1>

and in the .js file:
import Autocomplete1 from 'vue2-autocomplete-js';
Vue.component('abc-api', {
    components: { Autocomplete1 },

Hey @mailnike,
Thanks for giving me an issue, but I think it can be caused by your url location. You need to put complete url i.e. "http://yourwebsite.com/the/apis :grin: :+1:

Thanks @BosNaufal but no luck. Tried again with full URL and also removed middleware authentication to see if that was the problem.

@mailnike Would you like to reproduce it via http://jsonplaceholder.typicode.com/ and webpackbin or codepen or jsfiddle or somthing else? so, I can check the problem.

@BosNaufal I found the issue. If I comment the auth middleware then it works. Is there anyway I can pass XSRF token? or do I need to pass it?
If I do API call in VUEJS then LARAVEL Spark takes care of this in the backend but for AJAX call I am passing it explicitly.

Hey @mailnike, Just simply remove the auth in your search route. Or you can make it (the search route) to read the token via url query. I think it's just the BackEnd problem.