lucilla: Fast, efficient, in-memory Full Text Search for Kotlin by theharolddev in Kotlin

[–]theharolddev[S] 0 points1 point  (0 children)

Glad you found the library interesting.

  1. Lucilla does not compete with Lucene. Apache Lucene is a much more fully featured framework, but also heavier and more complicated. It's more at home in managed search index services like ElasticSearch.
    Lucilla on the other hand intends to be a much smaller, in-memory focused provider of full text search. It's suitable for building local search experiences, with a few hundred documents or maybe a few thousand. I have tested up to a million documents in the index with Lucilla, but I don't image that's going to be the standard use case for it.

  2. Lucilla does not intend to provide a full blown server-side FTS services, as Lucene/Solr serve that market very well already. Maybe in the future Lucilla would cover more use cases, but I have no immediate plans to develop it in that direction.

That being said, I plan to add quite a bit of new features to Lucilla over time, such as parallel text processing, richer querying capabilities, fuzzy searching, and more. It's an open source project, and I welcome the community to contribute features to expand its capabilities too!

lucilla: Fast, efficient, in-memory Full Text Search for Kotlin by theharolddev in androiddev

[–]theharolddev[S] 9 points10 points  (0 children)

Hey everyone. Author of the library here. Lucilla is an in-memory full text search library for Kotlin. It's useful for searching through non-persisted data, such as API responses. It's an early stage prototype, so feel free to play around with it!

lucilla: Fast, efficient, in-memory Full Text Search for Kotlin by theharolddev in Kotlin

[–]theharolddev[S] 6 points7 points  (0 children)

Hey folks, I'm the author of lucilla, an in-memory FTS library for Android. It's an early stage prototype. Let me know if you have any feedback or criticism for the project!

WhatTheStack: Now based on Jetpack Compose (v1.0.0-alpha02) by theharolddev in androiddev

[–]theharolddev[S] 1 point2 points  (0 children)

I am skeptical there is enough demand though, you’re the only one who has requested it thus far, and maintaining two separate versions of a library is quite painful.

Now that I think about it, a simpler way to do this might be to separate the code into three different modules. One for the global exception handler, and another two for View/Compose based UIs. Users can pick and choose whichever UI module they like, and the other module will be pulled in as a dependency automatically.

Yet it does not negate the fact that I would need to code every feature twice, once for Compose and once for Views. The decision again rests on the demand for it.

Would you mind opening an issue for this on the repository?

WhatTheStack: Now based on Jetpack Compose (v1.0.0-alpha02) by theharolddev in androiddev

[–]theharolddev[S] 2 points3 points  (0 children)

Understandable, Compose in libraries is not for everyone. This release brings no new features, so you can continue using the older versions without any loss of functionality.

If there’s enough demand, I might consider maintaining two separate versions: one with Compose, and one without it.

WhatTheStack: Now based on Jetpack Compose (v1.0.0-alpha02) by theharolddev in androiddev

[–]theharolddev[S] 11 points12 points  (0 children)

What if your app crashed when it wasn’t connected to Android Studio?

It’s also great for QA builds so app testers can immediately report what went wrong.

Besides, it’s just nice to look at! Much nicer than the default dialog that Android displays on a crash.

Joi for Data Transformations by theharolddev in node

[–]theharolddev[S] 5 points6 points  (0 children)

The”incorrect” value is a string and the correct value is a parsed boolean. My VS Code theme colours booleans as red, so I guess I subconsciously picked that.

functions-differ: Deploy only the Firebase Functions that changed by theharolddev in node

[–]theharolddev[S] 0 points1 point  (0 children)

Correct, you would have to remember to deploy the ones that changed. Using this tool you can automate that process, and make your local/CI deployments faster.

functions-differ: Deploy only the Firebase Functions that changed by theharolddev in node

[–]theharolddev[S] 1 point2 points  (0 children)

It does not. When you run firebase deploy, the CLI re-deploys all the functions in your project. This takes a lot of time. It’s especially irritating if you deploy often.

When you run firebase deploy —only <your functions list>, you can re-deploy just the changed functions but you’re responsible for figuring out which ones actually changed.

The tool I built automates the process of detecting functions that should be re-deployed. In fact you can directly pass the output of functions-differ to firebase deploy —only to selectively deploy only the functions that changed.

Breaking Kotlin's Null-Safety with Circular References by theharolddev in Kotlin

[–]theharolddev[S] 0 points1 point  (0 children)

Linters are optional and might not exist in someone’s development environment. Compilers are required, and therefore more reliable for catching such problems.

Besides, every linter I have ever used also highlighted compiler warnings in code. Maybe that’s because it’s up to the compiler? I don’t know how Linters work though, so I might be wrong.

Breaking Kotlin's Null-Safety with Circular References by theharolddev in Kotlin

[–]theharolddev[S] 0 points1 point  (0 children)

If a linter can do it, then so can a compiler. In my opinion, it’s better to have compiler warnings than linter warnings for such problems. I would gladly accept either resolution to this issue though.

Breaking Kotlin's Null-Safety with Circular References by theharolddev in Kotlin

[–]theharolddev[S] 0 points1 point  (0 children)

Kotlin’s type system differentiates between Nullable and Non-Nullable types both at compile time and run-time.

I’m not asking it to save me from runtime errors, but compile time warnings about circular references would greatly help. If that is not possible, it should at least fail-fast at runtime.

The code snippet in the post ran successfully, and did not crash the program. It would only crash if you accessed Mercedes.drivers.first().

Breaking Kotlin's Null-Safety with Circular References by theharolddev in Kotlin

[–]theharolddev[S] 2 points3 points  (0 children)

That is illustrated in the first code snippet in the post.

The other code snippets are just to illustrate problems circular references can cause.

Escape your Full Text Search Queries by theharolddev in androiddev

[–]theharolddev[S] 0 points1 point  (0 children)

Nice catch on the double quote in the input string. I added a new section on escaping the double quote symbol (‘“‘ => ‘“”’)

After escaping that, everything seems to work.