feat: create Embed builder

Please describe the changes this PR makes and why it should be merged:
This PR creates an Embed builder. Closes #10
Status and versioning classification:

Code changes have been tested against the Discord API, or there are no code changes
I know how to update typings and have done so, or typings don't need updating
This PR changes the library's interface (methods or parameters added)

Codecov Report

Merging #11 (b2341ab) into main (de5fa82) will decrease coverage by 8.69%.
The diff coverage is 89.09%.

@@             Coverage Diff             @@
##              main      #11      +/-   ##
===========================================
- Coverage   100.00%   91.30%   -8.70%
===========================================
  Files            1        2       +1
  Lines           14       69      +55
  Branches         5       16      +11
===========================================
+ Hits            14       63      +49
- Misses           0        2       +2
- Partials         0        4       +4

Impacted Files
Coverage Δ

src/messages/embed.ts
89.09% <89.09%> (ø)

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 de5fa82...b2341ab. Read the comment docs.

I think this should check if all the properties are valid before setting them, like check if the title provided in setTitle is shorter than 256 characters, or if the fields are less than 25...

I think this should check if all the properties are valid before setting them, like check if the title provided in setTitle is shorter than 256 characters, or if the fields are less than 25...

That's what Vlad suggested in https://github.com/discordjs/builders/pull/11#discussion_r668325701 but we're waiting on a response from the ~big three~

I think this should check if all the properties are valid before setting them, like check if the title provided in setTitle is shorter than 256 characters, or if the fields are less than 25...

That's what Vlad suggested in #11 (comment) but we're waiting on a response from the ~big three~

I pinged the other two to reach a consensus about passing in data in the constructor, not validating builder methods inputs :D

Passing data in the constructor stays!
Validation with ow should occur in the functions (setTitle should assert that it's a string of maxlength, etc)
Constructors shouldn't call setter functions for validating data

Any questions, hit me up @Fyko!


feat: inner option support

When working with custom validators, if the type is a container such as Vec<T> or Option<T>, the validation function will get a reference to that container instead of the underlying data. This is in contrast with built-in validators that are able to extract the type from some container types such as Option<T>.
This PR builds on top of the existing implementations for slice-like containers by adding support for Option<T> to the inner modifier.
This allows you to easily use the same validation function for T as you do for Option<T> or Vec<T>.

Thanks!

Released in v0.16


Change to time scaling in TaskBuilder

@simon816
@Aikar brought up a good point about the inconsistency between what delay(long) means before and after async is set.
By default, everything should be in ticks unless you use the builder methods that take a TimeUnit (and we'll need to make a class that mimics Java's class and adds on TICK to that too). This should affect sync and non-sync.

You can't schedule an async task using ticks because it runs independently from the tick cycle.

But you could say a tick is just 20/sec?

@simon816
If you don't pulse the async task unless x amount of ticks pass, you could?

for async, timestampToRunAt = ticks * 50ms
Pretty simple..
And for Relative Time Sync Tasks, ticksToWait = (now + TimeInUnits) / 50ms

@Zidane That would mean making the async scheduler listen to ticks which is not how it works.
What I'll do is make the methods delay(long) and interval(long) take ticks and only ticks. It would be convenient for plugins to know the tick rate (since the API does not declare this detail), so a method in SchedulerService called getPreferredTps() will be added (which would be 20 in vanilla)
If the task is async, the resulting time will be time / getPreferredTps()

@simon816
Or as I said, currently its based on timestamp for when it should run? Calculate the desired timestamp as value * preferredTickInterval (not tps, you would want 50ms, not the value 20, so 1s / preferredTPS)
While you could force plugins to calculate it themselves, having it as part of the API would be pretty clean.
Like I currently do in my Bukkit plugin TimeUnit.MINUTES.inTicks(5) to get 5 minutes worth of ticks, but .interval(5, TimeUnit.MINUTES); is a much cleaner API.

How about having both ticks and TimeUnits? delay(int, TimeUnit) and delayTicks(int), along with corresponding interval methods.

One solution is to combine the overloads into a single method with a class that represents the selected time:
abstract class Duration {
    static Duration ticks(int ticks);
    static Duration unit(int amount, TimeUnit unit);
}

Then you can use it like <TaskBuilder>.interval(Duration.ticks(20))
The implementation can then also be used to select the best method of timekeeping, for sync that would be exact ticks and closest future tick for timeunit values, while for async it would be exact timeunit and a perfect approximation of ticks (which assumes 20/second).
I think that basing all synchronous scheduling on internal ticks would be confusing, since a slowdown of the server changes what people presume to be an exact duration when using TimeUnit values.

This should hopefully cover the concerns here  https://github.com/SpongePowered/SpongeAPI/commit/9ae1a308a3e140074f57687fe245d2d3f785eb46


Manage authentication with API token

Add support for authenticating with API tokens
As requested in https://github.com/FortiPower/PowerFGT/issues/100
API Account can be setup with the following FortiOS CLI commands
config system accprofile
    edit "api_powerfgt"
        set netgrp read-write
        set fwgrp read-write
        set vpngrp read-write
        set system-diagnostics disable
    next
end

config system api-user
    edit "myaccount_powerfgt"
        set accprofile "api_powerfgt"
        config trusthost
            edit 1
                set ipv4-trusthost <IP_ADDRESS> <IP_ADDRESS>
            next
        end
    next
end

Bonjour Kevin,
Thanks for your contribution !!! can you look to may be add a token test on testsuite ? (i can help you if you need) we can considered we have already the ApiToken (need to set on credential.ps1), we don't have cmdlet yet for generate token (i see there is some new API call for this)
can you add also example on README.md about APItoken ?

Hi Alexis,
I added a test and a couple of notes in README.md
Regards,
Kevin

Look good, need to have https for use token ? (About test), may be also skip token test if you don’t have set the token

Thanks Kevin, ApiToken with FortiOS 7.0.(3) and HTTP, i need to check it is working also with PS5 (Tested with PS7 on Windows and macOS)


State var name conflicts?

This is a question.  You introduce common state var names such as motion or orientation.
What's going to happen if I use this code and it conflicts with my own state vars w/ the same name?
Is this an issue?  Should state var names be more unique?

Hey!
This should not be an issue as the variable names are up to you.
  const motion = useDeviceMotion();
  const something = useDeviceMotion();


Function overloading with different result type

¿How I can define and implement an overloaded function with different result type?
Example:
function generate(type: 'number' | 'string') {
    if (type === 'number') {
        return 1234
    } else {
        return 'hello'
    }
}

const aNumber = generate('number') // I expect the result type as number
const aString = generate('string') // I expect the result type as string

Thanks for this amazing work.

Hello. "Function overloading" is in plans, so, it will be added after we will fix known bugs.
Thank you for the contribution ^_^


test PR with Github API

Please pull this in!

Docs Build status updates of commit 4bde77e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

tutorial-manage-data-disk.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


NoMethodError: Undefined method or attribute kernel' on node'

Hi,
I got this error yesterday with Chef version 12.8.1:
================================================================================
Recipe Compile Error in /tmp/chefspec20160407-24403-1dbv78xfile_cache_path/cookbooks/seven_zip/attributes/default.rb
================================================================================

NoMethodError
-------------

Undefined method or attribute `kernel' on `node'
Cookbook Trace:
---------------
/tmp/chefspec20160407-24403-1dbv78xfile_cache_path/cookbooks/seven_zip/attributes/default.rb:21:in `from_file'

Relevant File Content:
----------------------
/tmp/chefspec20160407-24403-1dbv78xfile_cache_path/cookbooks/seven_zip/attributes/default.rb:

14: # Unless required by applicable law or agreed to in writing, software
15: # distributed under the License is distributed on an "AS IS" BASIS,
16: # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: # See the License for the specific language governing permissions and
18: # limitations under the License.
19: #
20:
21>> if kernel['machine'] =~ /x86_64/
22: default['seven_zip']['url'] = 'http://www.7-zip.org/a/7z1514-x64.msi'
23: default['seven_zip']['checksum'] = 'cefe1a9092d8a6be68468c33910d6206b40e934fb63cab686c5cccf369fbf712'
24: default['seven_zip']['package_name'] = '7-Zip 15.14 (x64 edition)'
25: else
26: default['seven_zip']['url'] = 'http://www.7-zip.org/a/7z1514.msi'
27: default['seven_zip']['checksum'] = 'eaf58e29941d8ca95045946949d75d9b5455fac167df979a7f8e4a6bf2d39680'
28: default['seven_zip']['package_name'] = '7-Zip 15.14'
29: end

Relevant build status: https://travis-ci.org/Numergy/phpenv-cookbook/jobs/121451103

@Sliim I haven't been keeping up on Chef, sounds like a breaking change in a newer version of Chef. Any idea what the fix is?

Hi @sneal,
A quick fix could be if node['kernel']['machine'] =~ /x86_64/ instead of if kernel['machine'] =~ /x86_64/
I have not tested yet this but it should works..

Fixed

Thanks :+1:


Kit's open source

Nice work!  You definitely do have skills to contribute to OS projects and I hopt you'll keep contributing as they expand.
One comment: for small changes like this I'd suggest committing them all to the same branch instead of making a new PR for each.  PRs in generall should contain code that might be merged separately.  It's unlikely that a maintainer would accept one emdash fix but refuse another, so combining them all into one PR simplifies things.
No worries though- thanks for your contribution to the textbook!


Notes from first use of the CLI

These are notes from converting the documentation of the https://github.com/jupyterhub/zero-to-jupyterhub-k8s project. I just wrote that came to mind along as I used it for the first time with no prior knowledge other than its a cli to help me transform rst to myst.

[ ] roles list command output line separated roles instead of a big string for better human readability.
[ ] roles show help string sais the same as list.
[ ] directives list/show same as above
[ ] --help could perhaps say something more relevant than CLI for rst-to-myst, such as the focus of its purpose.Usage: rst2myst [OPTIONS] COMMAND [ARGS]...

CLI for rst-to-myst

[ ] parse --help or the help of the parse --conversion flag could perhaps provide some reference or be a bit more verbal about it maybe.
[ ] parse --extensions help text doesn't describe how to specify the extensions, comma separated list to load?
[ ] `parse --sphinx/--no-sphinx doesn't make it clear what is the default
[ ] Trailing blank lines.

[ ] The conversion of a .rst file with only hello world followed by a blank line leads to a .md output of hello world with 3 blank lines
[ ] The conversion of the following.. image:: ../_static/images/architecture.png
   :align: center

Led to a blank new line in the image directive```{image} ../_static/images/architecture.png
:align: center

```

[ ] I noted that ::: as a directive signal was used an directive that wasn't supported it seems, but was used for a directive that was. That made me a bit confused.
[ ] It would be nice to have a --validate flag or similar for a parsing, giving hints about the transform rather than just outputting the output without warnings etc.
[ ] I found myself using rst2myst parse -f myfile.rst > myfile.md a lot, it could be nice to have some flag to modify the file in place or similar perhaps. -i, --in-place for example.
[ ] I learned that it wasn't possible to do rst2myst parse -f test.md > test.md for some reason I don't get. I would guess this would be reasonable to have working in general though, for example cat test.md | sed replacesomething > test.md. Perhaps its because we started printing content before we had finished reading it?
[ ] Having used some double ticks in rst translated to doubleticks in md where I expected to have only one

Thanks @consideRatio

I noted that ::: as a directive signal was used an directive that wasn't supported it seems, but was used for a directive that was. That made me a bit confused.

Can you expand on this a bit further, what directives are you referring to?

Thanks @consideRatio

I noted that ::: as a directive signal was used an directive that wasn't supported it seems, but was used for a directive that was. That made me a bit confused.

Can you expand on this a bit further, what directives are you referring to?

@chrisjsewell I updated the issue! I'm still adding to it btw, just didn't dare keep it in browser-memory without pressing send in between as a save mechanism :p

@chrisjsewell I updated the issue! I'm still adding to it btw, just didn't dare keep it in browser-memory without pressing send in between as a save mechanism :p

I found myself using rst2myst parse -f myfile.rst > myfile.md a lot, it could be nice to have some flag to modify the file in place or similar perhaps. -i, --in-place for example.

related to #6

I found myself using rst2myst parse -f myfile.rst > myfile.md a lot, it could be nice to have some flag to modify the file in place or similar perhaps. -i, --in-place for example.

related to #6

Ha yeh no problem

Ha yeh no problem

I noted that my generated myst directives was using colon-syntax for directives like note, and important, but not for code-block. I ended up with a mix of colon-syntax and backtick syntax for my myst directives. I had not enabled colon-syntax manually in any way or by configuration.

As talked about at https://github.com/executablebooks/rst-to-myst#advanced-usage, the conversion of directives is dictated by https://github.com/executablebooks/rst-to-myst/blob/main/rst_to_myst/data/directives.yml.
You can "update" this configuration with the --conversion my_config.yml, or I could add a flag to ignore the colon prefixes.
The idea though is that for directives that contain content that itself is Markdown, it is more helpful in standard renderers (like here on GitHub or viewing Jupyter Notebooks) to see:
:::{note}

This contains Markdown

With things like links

:::
rather than
> This contains *Markdown*
- With things like [links](https://example.com)

for code-blocks, the content is not Markdown, so then we want ```
In fact, while I'm thinking it now, it would be ideal to have a special case for code/code-block directives, with no options, to convert them to standard language fences, i.e.
.. code-block:: python

   a = "text"

to:
```python
a = "text"
```

rather than
```{code-block} python
a = "text"
```

I noted that my generated myst directives was using colon-syntax for directives like note, and important, but not for code-block. I ended up with a mix of colon-syntax and backtick syntax for my myst directives. I had not enabled colon-syntax manually in any way or by configuration.

As talked about at https://github.com/executablebooks/rst-to-myst#advanced-usage, the conversion of directives is dictated by https://github.com/executablebooks/rst-to-myst/blob/main/rst_to_myst/data/directives.yml.
You can "update" this configuration with the --conversion my_config.yml, or I could add a flag to ignore the colon prefixes.
The idea though is that for directives that contain content that itself is Markdown, it is more helpful in standard renderers (like here on GitHub or viewing Jupyter Notebooks) to see:
:::{note}

This contains Markdown

With things like links

:::
rather than
> This contains *Markdown*
- With things like [links](https://example.com)

for code-blocks, the content is not Markdown, so then we want ```
In fact, while I'm thinking it now, it would be ideal to have a special case for code/code-block directives, with no options, to convert them to standard language fences, i.e.
.. code-block:: python

   a = "text"

to:
```python
a = "text"
```

rather than
```{code-block} python
a = "text"
```

myst - why is there a <> remaining? It seems fine though.

See https://github.com/executablebooks/mdformat/pull/38#issuecomment-699636729, i.e. its "safer", but could be removed with some extra code to check for unsafe links: https://github.com/executablebooks/mdformat/commit/a3b4de32f9fe84ae29c099c1f53262671dbe27c3

myst - why is there a <> remaining? It seems fine though.

See https://github.com/executablebooks/mdformat/pull/38#issuecomment-699636729, i.e. its "safer", but could be removed with some extra code to check for unsafe links: https://github.com/executablebooks/mdformat/commit/a3b4de32f9fe84ae29c099c1f53262671dbe27c3

I learned that it wasn't possible to do rst2myst parse -f test.md > test.md for some reason I don't get. I would guess this would be reasonable to have working in general though, for example cat test.md | sed replacesomething > test.md. Perhaps its because we started printing content before we had finished reading it?

Probably to do with the use of https://click.palletsprojects.com/en/7.x/api/#click.File, i.e. the file is still open

I learned that it wasn't possible to do rst2myst parse -f test.md > test.md for some reason I don't get. I would guess this would be reasonable to have working in general though, for example cat test.md | sed replacesomething > test.md. Perhaps its because we started printing content before we had finished reading it?

Probably to do with the use of https://click.palletsprojects.com/en/7.x/api/#click.File, i.e. the file is still open

Converting a .. toctree:: directive with a :titlesonly: argument worked in a way, but the generated MyST content was invalid. It became :titlesonly: None which made a difference to the toctree where nothing was shown instead of only the titles

as of v0.1.2, flags (i.e. options with no value) are converted to :key: true which should now work correctly

Converting a .. toctree:: directive with a :titlesonly: argument worked in a way, but the generated MyST content was invalid. It became :titlesonly: None which made a difference to the toctree where nothing was shown instead of only the titles

as of v0.1.2, flags (i.e. options with no value) are converted to :key: true which should now work correctly

parse --extensions help text doesn't describe how to specify the extensions, comma separated list to load?

no at present it would be parse -e ext1 -e ext2 -e ext3, but could do comma separated and also want to add #7

parse --extensions help text doesn't describe how to specify the extensions, comma separated list to load?

no at present it would be parse -e ext1 -e ext2 -e ext3, but could do comma separated and also want to add #7

A lot of this is now fixed in v0.2.0, see https://rst-to-myst.readthedocs.io/
whenever you have time, if you want to check it out and note any outstanding issues

@consideRatio

I learned that it wasn't possible to do rst2myst parse -f test.md > test.md for some reason I don't get. I would guess this would be reasonable to have working in general though, for example cat test.md | sed replacesomething > test.md. Perhaps its because we started printing content before we had finished reading it?

This is a common shell gotcha. The shell truncates the output file when opening for writing, before the command has a chance to open it for reading.


YNAB exporter stuck on "Starting"

Pretty much the title, I only see a spinner and nothing else.
(Let me know how to add more information - Is there a way to find more information without opening a dev env?)
Also, the automatic fields are missing information - Where can I find it? I'll add it to the bug:
    ## System Info

     - Source Version: `SOURCE_COMMIT_SHORT`
     - OS: `browserjavascript`
     - OS Version: `5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) caspion/1.11.4 Chrome/98.0.4758.141 Electron/17.4.11 Safari/537.36`

@brafdlog

@baruchiro @brafdlog can I offer any assistance with this? This is a real problem for me

@Nitaym yes, we really need help here

Hey, sorry for the latency.
What do you mean when you say the automatic fields are missing information?
Do you see any errors in the log?

Hi, is it still happening?

I have the same issue.
When configring YNAB, budget id fetched successfully but the "Ynab account id" is empty.

@skoant You mean that the cells in the ynab account it column don't get prepopulated?
Please open caspion, open dev tools (Ctrl+Shift+I for windows or cmd+alt+I for mac) and see in the console the logs, tell me what you see there (don't paste here any account senstivie data, you can blank that out and share the generic log)

@brafdlog getting the same.
Here is the console log screenshot:

status: "INVALID_BUDGET_ID"

The title of the issue is Ynab exporter stuck.
Are you stuck during the export or when changing the settings of ynab?
This error: INVALID_BUDGET_ID is sent when no categories are returned from ynab, this could indicate that the budget id is invalid.
Please go to the settings and try to choose the budget again and save, and try again.

@brafdlog The issues are related
The Ynab account id isn't being populated because of the bug I'm fixing when there is only one budget id in the list.
Because it's not being populated the YNAB exporter get stuck on "Starting"

@Nitaym Is this still happening with the new versions?

@baruchiro @brafdlog I think we can close this

@shaiu I'm dreaming about a stale bot https://github.com/actions/stale 😉


Feat: FlexJobs Scrapper added

Description

The changes made in this pull request include the creation of a FlexJobs scrapper, implementation of unit tests for the scrapper, and updates to the documentation.

Resolves: [ #881 ]
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[x] Have you adhered to the repository's defined coding convention rules?
[x] Have you updated the 'documentation.md' file with the method/function documentation?
[x] Have you sent a message along with the result or response?
[x] Have you used the try-catch technique?
[x] Has the method/class been added to the documentation (md file)?

Screenshots

Additional Notes/Comments

I have created the flexjobs scrapper please check that out.
I want Indeed website scrapper next, so should i open another issue, or work under the same as both are job scrappers

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

Great work @AKASH722  !!
Do not forget to

Share your contribution on socials and tag Clueless 🫂
Give this repository a star ✨
Follow Clueless Community on GitHub ✅


User geometry: Failed to create OSPGeometry!

I'm trying to implement a custom geometry type. As a simple starting point to verify compilation settings I have cloned the "Spheres" geometry files and refactored everything to "Myspheres".
The project compiles and links fine (including ispc).   However, when trying to instantiate my custom spheres geometry a runtime exception "Failed to create OSPGeometry!" is thrown.
I assume my compiling/linking is wrong?
See my CMakeLists and main.cpp below:
cmake_minimum_required(VERSION 3.3)
project(MySpheres CXX)

set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(ospray REQUIRED)
include(${OSPRAY_USE_FILE})

INCLUDE_DIRECTORIES(${OSPRAY_INCLUDE_DIRS})
INCLUDE_DIRECTORIES_ISPC(${OSPRAY_INCLUDE_DIRS})

OSPRAY_CONFIGURE_ISPC_ISA()
OSPRAY_ADD_LIBRARY(Myspheres Myspheres.cpp Myspheres.ispc)

OSPRAY_ADD_EXECUTABLE(app main.cpp)
OSPRAY_EXE_LINK_LIBRARIES(app Myspheres ${OSPRAY_LIBRARIES})

#include <ospray/ospray.h>
#include <ospray/ospray_cpp/Geometry.h>

int main(int argc, char* argv[])
{
    ospInit(&argc, (const char **) argv);

    ospray::cpp::Geometry spheres("spheres"); // works

    ospray::cpp::Geometry myspheres("myspheres"); // runtime_error: Failed to create OSPGeometry!

    return 0;
}

It looks like the implementation of your user geometry resides in a separate, shared library, which is fine and recommended. However, you need to load that library first so that OSPRay can find the new geometry type (just linking the application may only work with static libraries). So, use
int32_t ospLoadModule(const char *name);

The naming convention for plugins / modules (on Linux) is libospray_module_<name>.so, so you also need to adapt the name:
OSPRAY_ADD_LIBRARY(ospray_module_Myspheres Myspheres.cpp Myspheres.ispc)

Hey, thanks for the feedback!
In fact, with your modifications a static library is created (libospray_module_Myspheres.a).
So ospLoadModule fails with the following runtime exception: libospray_module_Myspheres.so: cannot open shared object file: No such file or directory`
However, when I modify the OSPRAY_ADD_LIBRARY line to create a shared library (OSPRAY_ADD_LIBRARY(ospray_module_Myspheres SHARED Myspheres.cpp Myspheres.ispc)), linking fails with the following output:
[ 20%] Building CXX object CMakeFiles/ospray_module_Myspheres.dir/Myspheres.cpp.o
[ 40%] Linking CXX shared library libospray_module_Myspheres.so
[ 60%] Built target ospray_module_Myspheres
[ 80%] Linking CXX executable app
libospray_module_Myspheres.so: undefined reference to `Geometry_Constructor___un_3C_s_5B_unGeometry_5D__3E_un_3C_unv_3E_un_3C____un_3C_s_5B_unGeometry_5D__3E_un_3C_s_5B_unModel_5D__3E_REFs_5B_vyDifferentialGeometry_5D_REFs_5B__c_vyRay_5D_unI_3E_un_3C_s_5B_unModel_5D__3E_uniun_3C_s_5B_unMaterial_5D__3E_sse2'
collect2: error: ld returned 1 exit status

What am I missing?

Your (now shared) lib needs to be linked against OSPRay as well
OSPRAY_LIBRARY_LINK_LIBRARIES(ospray_module_Myspheres ${OSPRAY_LIBRARIES})

(Alternatively you could use the new, yet another macro
OSPRAY_CREATE_LIBRARY(ospray_module_Myspheres
  Myspheres.cpp
  Myspheres.ispc
LINK
  ${OSPRAY_LIBRARIES}
)

which combines all these steps, also set its VERSION and packages/installs the lib.)

Thanks, I already tried that, but the error remains the same:
libospray_module_Myspheres.so.SOVERSION: undefined reference to Geometry_Constructor___un_3C_s_5B_unGeometry_5D__3E_un_3C_unv_3E_un_3C____un_3C_s_5B_unGeometry_5D__3E_un_3C_s_5B_unModel_5D__3E_REFs_5B_vyDifferentialGeometry_5D_REFs_5B__c_vyRay_5D_unI_3E_un_3C_s_5B_unModel_5D__3E_uniun_3C_s_5B_unMaterial_5D__3E_sse2
My CMake file:
cmake_minimum_required(VERSION 3.3)
project(MySpheres CXX)

set (CMAKE_CXX_STANDARD 14)
set (CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(ospray REQUIRED)
include(${OSPRAY_USE_FILE})

INCLUDE_DIRECTORIES(${OSPRAY_INCLUDE_DIRS})
INCLUDE_DIRECTORIES_ISPC(${OSPRAY_INCLUDE_DIRS})

OSPRAY_CONFIGURE_ISPC_ISA()
#OSPRAY_ADD_LIBRARY(ospray_module_Myspheres SHARED Myspheres.cpp Myspheres.ispc)
#OSPRAY_LIBRARY_LINK_LIBRARIES(ospray_module_Myspheres ${OSPRAY_LIBRARIES})
OSPRAY_CREATE_LIBRARY(ospray_module_Myspheres Myspheres.cpp Myspheres.ispc LINK ${OSPRAY_LIBRARIES} )

OSPRAY_ADD_EXECUTABLE(app main.cpp)
OSPRAY_EXE_LINK_LIBRARIES(app ospray_module_Myspheres ${OSPRAY_LIBRARIES})

OK, this is a bug in the ISA configuration. Until we have a proper fix please include this workaround before calling OSPRAY_CONFIGURE_ISPC_ISA():
    SET(EMBREE_ISA_SUPPORTS_AVX    FALSE)
    SET(EMBREE_ISA_SUPPORTS_AVX2   FALSE)
    SET(EMBREE_ISA_SUPPORTS_AVX512 FALSE)

    # Workaround - name changed from EMBREE_ISA to EMBREE_MAX_ISA in 2.10 -> 2.11
    IF (DEFINED EMBREE_ISA)
      SET(EMBREE_ISA_NAME EMBREE_ISA)
    ELSE ()
      SET(EMBREE_ISA_NAME EMBREE_MAX_ISA)
    ENDIF()

    IF (${${EMBREE_ISA_NAME}} STREQUAL "AVX")
      SET(EMBREE_ISA_SUPPORTS_AVX TRUE)
    ELSEIF (${${EMBREE_ISA_NAME}} STREQUAL "AVX2")
      SET(EMBREE_ISA_SUPPORTS_AVX  TRUE)
      SET(EMBREE_ISA_SUPPORTS_AVX2 TRUE)
    ELSEIF (${${EMBREE_ISA_NAME}} STREQUAL "AVX512KNL")
      SET(EMBREE_ISA_SUPPORTS_AVX    TRUE)
      SET(EMBREE_ISA_SUPPORTS_AVX2   TRUE)
      SET(EMBREE_ISA_SUPPORTS_AVX512 TRUE)
    ENDIF()

Additionally, to successfully load your lib you need to include a plugin register function, something like
    extern "C" void ospray_init_module_Myspheres()
    {
        std::cout << "loading 'Myspheres' module" << std::endl;
    }

Hi,
I was just trying to resurrect some old user geometry code, which used to work in OSPRay 1.2.0.
However, now in OSPRay 1.3.1 I get the Failed to create OSPGeometry! exception again.
The CMake part that used to work:
OSPRAY_CREATE_LIBRARY(ospray_module_ParticleSurface ParticleSurface.cpp ParticleSurface.ispc LINK ${OSPRAY_LIBRARIES})

OSPRAY_ADD_EXECUTABLE(fpmvis main.cpp)
OSPRAY_EXE_LINK_LIBRARIES(fpmvis ospray_module_ParticleSurface ${OSPRAY_LIBRARIES})

The last two commands OSPRAY_ADD_EXECUTABLE/OSPRAY_EXE_LINK_LIBRARIES are not available anymore. Replacing them with standard ADD_EXECUTABLE/TARGET_LINK_LIBRARIES allows to compile, but the module can not be loaded at runtime.
What's the current way to go for loading user modules?
Thanks!

You'll want to use OSPRAY_CREATE_LIBRARY for modules and OSPRAY_CREATE_APPLICATION for applications now, check out the pluggable geometry example for an example module.

Hi, thanks! Yes, I've seen the pluggable geometry example in the mean time and updated my post above. However, I can not spot the difference / what's missing. Do you see the problem?

One thing to look out for is if you accidently have an old version of the module on your $LD_LIBRARY_PATH (which often is an OSPRay install from some time in the past). On Linux we use dlopen() to open shared libraries, which will look on LD_LIBRARY_PATH first (as expected).
We have on our TODO list to add version checks to ospLoadModule() to make sure that the module loaded was built with the same version of OSPRay. The upcoming v1.4.0 release has so much in it that we won't have that implemented by then (mid September), but have it on the short list for v1.5.0!
FWIW, the stuff you posted earlier looks OK to me. If it's not a LD_LIBRARY_PATH problem, we'll need to dig deeper.

Thanks Jeff! I don't see or think there are any library conflicts.
Checking the loadLocalModule() code, the library is probably loaded fine. I receive OSP_UNKNOWN_ERROR, which is only returned if the initMethod (ospray_init_module_particleSurface in my case) throws an exception.
My init method in ParticleSurface.cpp is:
extern "C" void ospray_init_module_particleSurface()
{
    std::cout << "Loading 'Particle Surface' module" << std::endl;
}

Hmmmm, that is very strange. Can you confirm that getSymbol() succeeds?
We turn any std::runtime_error into an OSP_UNKNOWN_ERROR, but if you don't have an OSPRay error function installed on the device (done manually), then you may not be getting the error messages correctly. If an exception is thrown in any API function, then we catch it and keep going for C99's sake, which is confusing here because there is a path inside loadLocalModule() that can return OSP_UNKNOWN_ERROR in addition to getting that as a return value from a generic thrown exception.
Somewhat tangent to this issue, I've noticed its possible to install a status message callback through environment variables and/or command line options, but not an error status message....that's a bug! Looks like there's some need to make the default experience a bit better...

Wow, thanks. The error callback made things clear:  OSPRay error: 1 - could not open module lib ospray_module_particleSurface due to libospray_module_particleSurface.so: cannot open shared object file: No such file or directory
But that file does exist in the build folder.
Wow, it works if I start my app with LD_LIBRARY_PATH=. ./fpmvis

Bugs, ugh. Something may have changed wrt the paths considered and/or RPATH perhaps getting involved...(?)
Regardless, we'll try to clean up this experience v1.4.0. There shouldn't be any fundamental difference with modules betwee v1.2.0 and v1.3.1, sorry about the confusion! Thanks for being persistent. :)

I'm not sure OSPRay is to blame here. Maybe there is something fishy about my build system. Anyway, thanks for your help!

I just noticed that we still claim in the documentation, that the application directory is also searched for modules. That has been the case in the past, but not anymore (since v1.2.0). RPATH is considered, thus, if libospray.so is found, then module particleSurface should be found as well (assuming it is in the same folder).

This seems to be a never-ending story for me...
So everything works fine on my desktop machine, however the user geometry fails to be initialized on my university's cluster.
If I run with LD_DEBUG=libs on my desktop, I get this:
     18671:     find library=libospray_module_ParticleSurface.so [0]; searching
     18671:      search path=./tls/x86_64:./tls:./x86_64:.              (LD_LIBRARY_PATH)
     18671:       trying file=./tls/x86_64/libospray_module_ParticleSurface.so
     18671:       trying file=./tls/libospray_module_ParticleSurface.so
     18671:       trying file=./x86_64/libospray_module_ParticleSurface.so
     18671:       trying file=./libospray_module_ParticleSurface.so
     18671:
     18671:
     18671:     calling init: ./libospray_module_ParticleSurface.so
     18671:
Loading 'Particle Surface' module  // this is printed in the ospray_init_module_ParticleSurface() function.

However, on the cluster I get this output:
     68981:     find library=libospray_module_ParticleSurface.so [0]; searching
     68981:      search path=/home/tbiedert/local/lib64:/home/tbiedert/local/lib64/../lib/tls/x86_64:/home/tbiedert/local/lib64/../lib/tls:/home/tbiedert/local/lib64/../lib/x86_64:/home/tbiedert/local/lib64/../lib                (RPATH from file ./fpmvis)
     68981:       trying file=/home/tbiedert/local/lib64/libospray_module_ParticleSurface.so
     68981:       trying file=/home/tbiedert/local/lib64/../lib/tls/x86_64/libospray_module_ParticleSurface.so
     68981:       trying file=/home/tbiedert/local/lib64/../lib/tls/libospray_module_ParticleSurface.so
     68981:       trying file=/home/tbiedert/local/lib64/../lib/x86_64/libospray_module_ParticleSurface.so
     68981:       trying file=/home/tbiedert/local/lib64/../lib/libospray_module_ParticleSurface.so
     68981:      search path=/home/tbiedert/local/lib64:/home/tbiedert/local/lib:tls/x86_64:tls:x86_64:         (RPATH from file ./fpmvis)
     68981:       trying file=/home/tbiedert/local/lib64/libospray_module_ParticleSurface.so
     68981:       trying file=/home/tbiedert/local/lib/libospray_module_ParticleSurface.so
     68981:       trying file=tls/x86_64/libospray_module_ParticleSurface.so
     68981:       trying file=tls/libospray_module_ParticleSurface.so
     68981:       trying file=x86_64/libospray_module_ParticleSurface.so
     68981:       trying file=libospray_module_ParticleSurface.so
     68981:
     68981:     libospray_module_ParticleSurface.so: error: symbol lookup error: undefined symbol: _ZN6ospray13postStatusMsgERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj (fatal)

     68981:     /home/tbiedert/local/lib64/libospray_common.so.0: error: symbol lookup error: undefined symbol: ospray_create_geometry__particleSurface (fatal)
terminate called after throwing an instance of 'std::runtime_error'
  what():  Failed to create OSPGeometry!

So it seems like the module can not be loaded due to libospray_module_ParticleSurface.so: error: symbol lookup error: undefined symbol: _ZN6ospray13postStatusMsgERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj (fatal) ...
Have you guys ever seen something like this? Any ideas?
Both machines use OSPRay 1.4.1.  Compiler is different, though: GCC 6.3 on desktop, 7.1 on cluster.
Thanks!

postStatusMsg is defined in libospray.so; can you please check with nm that the name mangling of that function in libospray.so (with T) and libospray_module_ParticleSurface.so (with U) is the same? Because with C++ it indeed can happen that compilation with different compilers cause linking errors. The recommendation is to compile all modules with the same compiler (thus you may need to recompile OSPRay on the cluster).

Thanks Johannes, you were right! There was indeed a compiler mismatch between the OSPRay library and my client app.


Improve Tagging feature

As a user with many persons in the address book, I want to assign tags to my contacts easily so that I can categorise my contacts in a meaningful manner.
This improvement should be closed upon the closure of #33, #34, #35 and #36.

Closed as #33 , #34 , #35, #36  are completed and reviewed.

I am pushing one general code quality commit later, just cleaning up some code, so I will close using the PR.

Okay


Log all errors

The recent logging change means exceptions don't always get logged to files unless the exception is explicitly logged in the code. This means start_log.txt doesn't get filled properly.
Acceptance Criteria

Exceptions are logged automatically
start_log.txt gets properly filled

Since https://github.com/DiamondLightSource/hyperion/pull/1137, exceptions will only go to start_log.txt if they get logged in the code. Within the main Hyperion loop, this should always happen. If something breaks before this, it will not.

I confess I don't totally understand how the start_log works - I had thought it just captured logging output until the logs are setup another way. What is it actually meant to do?
I guess this is actually related to my using screen in the startup script and it not propagating the output in the way I thought

Yes, that's all it's meant to do. If there's an exception on startup due to e.g. an import/syntax error. The logger will not yet be set up so we just need a way to capture it. From the issue description (which I copied from https://github.com/DiamondLightSource/hyperion/issues/1176) it seemed vague on whether this just affected the start_log or we were losing errors in general. @olliesilvester or @dperl-dls do you have an idea how much is affected?


Bug 600699: Remove downvotes from collections.

I'm not sure we still want to remove downvotes from collections. @fligtar?


(Feature) improve timing of signup/invite bonus

Some users signup bonus didnt show up on their feed

Client checks bonus every 10 minutes, if missed on signup then he will see it only later

signup bonus might be missing because of lastBlock set after bonus was given so wallet listeners do not always catch it

check for bonus on app focus

move lastblock set before calling addUser on server

Verified as done on Dev env v0.18.1-2
All bonuses for signup and invite bonuses' time were checked.


Configure Azure Pipelines Add the build configuration

This pipeline configuration builds the application and produces a build for the Release configuration

 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: salimwp sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


New Google mirrors

Eg https://google.global.ssl.fastly.net

On iPad, the search bottom sometimes doesn't work. (Fastly one)
On iPhone, it shows a tablet view rather than mobile view. Making it very hard to use.

We got some captcha issues again. I fixed a problem with filling them in - now that works at least. Also there seem to be charset conversion problems sometimes. I have supposedly fixed it but let's keep an eye on it.

Charset bug fixed - again

Urgent bug: Chinese search query will cause random characters!

--
Percy Alpha(PGP https://en.greatfire.org/contact#alt)
GreatFire.org Team

@percyalpha You mean the search keyword itself gets messed up? I can see that problem. Fixing..

Should be fixed now

Also, I think the tablet/phone issue should be solved

@martin, on mobile, it doesn't show a mobile interface.
This is a generic problem. Pao-Pao mirror doesn't show pao-pao mobile interface either

Will look into mobile issue.
Other problems solved?

Yes.

mobile view, fixed on google. Let me know if OK. Not rolled out on other mirrors yet

The typing is rather hard on mobile view. I remembered you said before it's because how iOS deals with iFrame?

I know that was a problem in the past. I tried it now though and I don't see a problem. Which browser, iOS version are you using, and what is the problem more specifically?

Looks like it's a Chrome iOS problem. Test on safari iOS, it works.


bring back popularity

In the past, it had around 1 million visitors per month...
At present, it's around 20000-30000 visitors per month..

Need to finish targets first... :-1:  Popularity came be brought automatically..


contributing.md file added

Contributing.md file added

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 93.366%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
380

Relevant Lines:
407

💛  - Coveralls


feat: indexers

TODO:

[x] create indexers module
[x] move indexers to dream2nix
[x] make translation work
[x] make indexing work
[x] make translating indexes work
[x] make the shell command actually work (currently for some reason the packages fail to build)
[x] fix the CI
[x] add documentation for indexers
[ ] add documentation on how to use the new CLI apps
[x] improve CLI apps UX by adding help / usage flag and better argument processing
[x] make translate command output dream-locks under pname/version/ instead of just pname/ this is not always possible, dream2nix-crates-io and alike can do this themselves
[ ] add _generic.sourceRoot to dream-lock.json schema

runNixCmdInSrc takes a source shortcut and some arguments to pass to nix
eg. nix run github:nix-community/dream2nix#runNixCmdInSrc -- crates-io:ripgrep/13.0.0 shell .#ripgrep -c rg
nix run github:nix-community/dream2nix#runNixCmdInSrc -- github:foo/bar flake show
(open to any better names :sweat_smile:)
translate translates a given source shortcut
index indexes using a specific indexer, and outputs a list of source shortcuts
translate-index translates a list of source shortcuts

implemented indexers:

a basic npm indexer (only indexes by a text query)
a crates-io indexer (has "sort by" functionality)

So this mostly works now. I needed to add a new field to dream-lock.json to be able to pull this off more easily, _generic.sourceRoot, which is just the sourceRoot argument but instead in a dream-lock.json. Reason is that since the translators will depend on a sourceRoot being present, since they'll translate using a sourceRoot and output path sources for the packages in the sourceRoot, there needs to be some way to be able to provide it in a dream-lock.json so they can be used in a standalone way.
This is quite different from what I did in dream2nix-index-lib and what we agreed on the PR, but I think this is a much better way since it reuses a lot from dream2nix and adds minimal code. So I believe it is the right way.
I haven't yet documented how to use the new CLI apps, but basically:

translate-index takes a path to an index JSON file (described in indexers doc) and a path to output the lockfiles at
index takes the name of the indexer and the input JSON file (or just JSON string). The input to indexers if also explained in indexers doc.
shell takes a source shortcut and enters you in a shell with the packages from that source. I will add a run app that will just be the shell but instead run a command in the shell, instead of entering the shell.
translate takes a source shortcut and a path to output the lockfiles to.

I changed shell command to be more generic and introduced a runNixCmdInSrc command instead. It can be used to run pretty much any Nix command; the given source shortcut will be made into a flake. So stuff like nix run dream2nix#runNixCmdInSrc -- crates-io:ripgrep/13.0.0 shell .#ripgrep -c rg will work.

I changed shell command to be more generic and introduced a runNixCmdInSrc command instead. It can be used to run pretty much any Nix command; the given source shortcut will be made into a flake. So stuff like nix run dream2nix#runNixCmdInSrc -- crates-io:ripgrep/13.0.0 shell .#ripgrep -c rg will work.
Experimenting with different approaches to see which works better...

I feel like the ultimate version of this would be to just wrap nix itself, parse the arguments for source references, fetch the source references with impure fetching, translate the sources to flakes, then blindly run the original nix command, but replace all source refs with the just created flakes.
So, for example:
nix run github:prettier/prettier would be translated to nix run /tmp/dream2nix-cache/prettier-xxxx-flakified.
But I'm happy to do this in another PR. Feel free to just focus on creating package sets here.

Oh that's a really nice idea, never thought of that. But yeah that can be done in another PR, I was going to rewrite all the bash scripts in something else anyways so that we can get proper argument processing and other goodies...
Since that will be in another PR I won't write docs for the CLI stuff yet, if people want to use it they can either refer to this PR or ask on Matrix.

I really like that dream2nix-npm and dream2nix-crates-io both are now minimal and practically identical.
I think it would be optimal if they did not require dream2nix-index lib anymore and all the functionality would live inside dream2nix.
So that I could quickly generate a package set without having to worry about external libraries.

I really like that dream2nix-npm and dream2nix-crates-io both are now minimal and practically identical. I think it would be optimal if they did not require dream2nix-index lib anymore and all the functionality would live inside dream2nix. So that I could quickly generate a package set without having to worry about external libraries.

Yes, this was what I was going to do; and I just did that. Moved the rest of dream2nix-index-lib to dream2nix itself. This adds a makeFlakeOutputsForIndexes and utils.makeOutputsForIndexes.

Concerning the new sourceRoot field in dream-lock, this adds a new field which can hold a sourceSpec. This breaks the idea that all sourceSpecs can be found under sources. Couldn't we just let sourceRoot be a reference to an entry inside sources and have the source spec in there as well?

Yeah, it didn't sit right with me either, so I figured out a way to do what needs to be done without adding a new field to dream-lock.json.


WIP: Destroy the future

A little bigger than I thought, git diff lied to me.
Small changes:
a) Remove variance from all M[+_].
b) Display stack traces for uncaught exceptions. This was necessary for debugging, and will prove extremely useful in general.
c) Introduce shim instances of fs2 and cats-effect type classes.
d) Remove unnecessary shadowing imports of EitherT.eitherTMonad.
Big changes:
a) Introduce dependencies on fs2, shims, and cats-effect to many modules.
b) Replace almost all occurrences of Task in mimir and yggdrasil with IO. A notable boundary between IO and Task is the Precog BackendModule.
c) Replace all occurrences of Future in mimir and yggdrasil with IO.
Remaining issues:
a) All queries involving equijoins return no results. This may point to a problem with cogroup and execution order.
b) Use of the laziness in M.point(x) was ubiquitous, though it isn't really lazy because Future eagerly executes. I tried replacing it with M.bind(M.point(()))(_ => M.point(x) but that's a crap solution; at least Sync is needed, especially for JDBM3 interaction, but at that point the abstraction is totally useless and we should just use IO. We should do that anyway, because it helps to unravel the cake.
c) Unused imports.
d) Upgrading fs2 and http4s.

I am concerned about the cats-effect and shims dependencies being added. I guess we share a dislike about being stuck on old versions of scalaz, http4s etc which makes it more difficult to get rid of Future and other legacy classes, but I really don't like us entering a mixed scalaz and cats situation.
This confuses the architecture (eg a gliding scale of how much cats is allowed and where) & before we know it someone either unknowingly uses a shim on a performance critical path or is forced to use it.
Can you explain what the exact reasons are for adding this & what alternatives have been considered?  I hope we don't really need it, but if we do, I think it's important that someone adds a guideline to e.g. the wiki about when we can/should/can't/shouldn't use it.

 Kill it, if you have to.

@rintcius Sorry for the delay on responding. You raise some important points, so here's some specific responses…

but I really don't like us entering a mixed scalaz and cats situation.

This is unavoidable because we use Scala. The ecosystem has bifurcated, with some frameworks standardizing on cats, and others on scalaz. Any realistic Scala endware project that isn't either a) avoiding FP, or b) severely ideologically biased is going to have both cats and scalaz on the classpath, and this is going to be true for the next several years (if not closer to a decade). We have to just get used to this.
This is precisely why shims exists.

This confuses the architecture (eg a gliding scale of how much cats is allowed and where) […]

Cats is allowed. Simplifying this down: use the right tool for the job. Period. Now, we're not going to go through and search-replace scalaz with cats in quasar; we just don't have the time to do something like that, and there's no really compelling reason to do so. Scalaz 7 and cats are quite close together in most ways, and the ways in which they aren't (e.g. Eval and cats-mtl) we're already working around in some way (i.e. we don't really need Trampoline or Need since we use Free and Task so much, and we already have things like MonadState_). But just because our primary FP framework is and will remain scalaz 7 doesn't mean that we can't also use cats where it makes sense.
For example, http4s is the best web framework for Scala, full stop. So we're using http4s. Http4s depends on cats. fs2 is a very similar situation. Thus, cats ends up on our classpath, and we end up interacting with its types in a few places. This is just fine, and shims should make the interaction points quite painless (if it doesn't, definitely file a bug).
By convention, I would say that we should continue to use the scalaz variants of typeclasses as much as we possibly can. In other words, we shouldn't be defining methods in quasar which have something like F[_]: cats.Monad; use scalaz.Monad instead and lean on shims if you're interacting with something that expects a cats type. However, in the cases where the cats variant is essential or more convenient, feel free to use it. For example, you should use cats.effect.Effect if you need to, since scalaz has absolutely no peer to that typeclass. You should also use cats.effect.LiftIO instead of scalaz.LiftIO if relevant, since scalaz's LiftIO is kind of worthless, while the cats-effect version is well integrated into the ecosystem. And obviously, if you have a cats.effect.Effect in scope, you should not also bring in a scalaz.Monad, since Effect will materialize Monad via shims. You get the idea.
There are also a few other extremely niche situations where breaking convention and using cats types makes sense. For example, cats.data.StateT is stack-safe (at the cost of performance), while scalaz.StateT is not. So if you start running into stack issues while using StateT, feel free to use the cats version instead. But… uh, document it in some comments. And you probably won't be in that scenario.
Long-term, we'll have to make some decisions about frameworks, since scalaz 8 is a major departure and we're going to get left behind. We've got at least a year or two before we need to worry about that though.

[…] & before we know it someone either unknowingly uses a shim on a performance critical path or is forced to use it.

Shims is extremely lightweight by design.  The JVM should basically just see through all of them (though they won't be completely inlined due to existing polymorphism on the call sites). It really shouldn't add any measurable overhead above and beyond what is already present at any call-site which is using typeclass based abstraction.
This actually gets at a more critical point: if you're in a performance-critical path, you shouldn't be using things like Monad or similar in the first place. Forget the overhead of shims: if you're in a critical path, just the overhead of scalaz/cats is already unacceptably high.
So basically, I wouldn't worry about shims, really. If you do find it causes some problems, it is definitely a bug and please file an issue on the project itself. It really should be, for all practical intents and purposes, a nearly-zero-cost and invisible compatibility layer.

Can you explain what the exact reasons are for adding this & what alternatives have been considered?

cats.effect.IO is simply the best IO type for purposes, and so it definitely falls under the rubric of "use the best tool for the job".  The only other real alternative is Monix Task, but cats-effect is already going to be there because we're using fs2, and we don't need the other features that Monix's Task brings. scalaz.concurrent.Task was a good tool at the time it was introduced, but it's woefully obsolete at this point.  Prefer IO over Task for all new code (i.e. anything that isn't already assuming Task). We will eventually replace Task altogether.
Does that mostly answer your questions? This is a really important topic of conversation, so I'm glad you raised these points.

@edmundnoble Regarding the M.point usage…  I think the correct thing to do is assume that all uses of point in the mimir code are tainted. Instead of replacing them with pure, you should change the constraint on M[_] from scalaz.Monad to cats.effect.Async. Then, search-replace M.point with M.delay. Obviously, this is also wrong, so we're going to need to go back and find the non-side-effecting constructions and replace them with pure, but at least it will be safe.

Thanks for the details @djspiewak, much appreciated! That answers most of the questions indeed.
I guess in my mind shims were taking more performance overhead than they do in reality (would still be nice if we can see this confirmed in a benchmark... one day). The mental overhead of mixing cats/scalaz is still there, but yeah I do appreciate that shims keeps us out of a deadlock situation here.
Am I right that we won't upgrade http4s (with the switch from scalaz to cats) until we'll make those long-term decisions, i.e. is that upgrade part of the "decisions about frameworks"?

I guess in my mind shims were taking more performance overhead than they do in reality (would still be nice if we can see this confirmed in a benchmark... one day).

I would love to see that as well. PRs accepted! 😉

Am I right that we won't upgrade http4s (with the switch from scalaz to cats) until we'll make those long-term decisions, i.e. is that upgrade going to be part of the "decisions about frameworks"?

Actually we're upgrading http4s already on the new filesystem branch. The longer term decisions about frameworks is really referring to when scalaz 8 comes out and we have to decide if we're going to bite the bullet and switch to scalaz 8 (which is a large jump) or bite the bullet and switch to cats.

For the record, though runtime performance may be an issue, I've found practically that introducing shims really causes issues with compile time. That's probably more worth benchmarking.

When I introduced shims to slamdata-benchmarks and mimir, incremental compiles went from a couple seconds up to around eight seconds; not a controlled environment by any means, public benchmarks would probably help eliminate them.

compile time is the run time for developers ;)

public benchmarks would probably help eliminate this as a concern.

PRs accepted! ;-)

Actually we're upgrading http4s already on the new filesystem branch

Where can I find that branch? Or is it not pushed yet?

I've removed the polymorphism in M[_] from mimir and yggdrasil entirely. Everything is in IO. I also fixed cogroup, which was actually just broken because I broke it temporarily and forgot to reinstate the real version :blush:
An update on the PR description:
a) All queries involving equijoins and cogroup in general should now work, pending CI.
b) Use of the laziness in M.point(x) was carefully considered at every point; however, no tests failed when switching. This is because the tests already used Need instead of Future so whatever bugs in mimir that were caused by the incongruence were never possible to catch in tests anyway. /cc @djspiewak
c) Unused imports are still a thing, which I will tackle with a follow-up PR, as well as
d) Upgrading fs2, because this PR is way too big now already.

@edmundnoble failed to compile.
Can you get rid of the unused imports in this PR? Since they are an artifact of the work you did here, I think it makes sense to remove them now.

:+1: to upgrading fs2 in another PR.

@alissapajer Fixed compilation, it was the extra (now redundant) shadowing imports on master.
The thing is I don't actually know which imports are unused because of my work and which are unused because there are just a lot of unused imports in mimir/yggdrasil. That's why I want to follow up; removing all of the unrelated unused imports seems out of scope and is probably much faster than going over imports with a fine toothed comb, but let me know.

@wemrysi @nicflores is there a "new filesystem branch" somewhere where we are using the latest version of http4s? @nicflores where have you been doing your api work? /cc @rintcius

@alissapajer Turns out there were very few unused imports, so I just snipped them out.

@alissapajer @nicflores @rintcius Yes, but it's over in @nicflores 's fork of slamdata-backend, nothing has been committed to upstream yet, afaik.

@alissapajer, as @wemrysi mentions, I have a local branch where we are using http4s version v0.18.9 within a new module of slamdata-backend. I've pushed some of the work to my fork here: https://github.com/nicflores/slamdata-backend/tree/wip-add-new-data-service
I still need to write tests for the /datasource and /datasources endpoints before I PR.

I added "#qz-3535 done" to the PR description.


[WIP] Automatic tag inference

The goal of this PR was to do automatic tag inference, for instance instead of,
>>> import numpy as np
>>> from neurtu import delayed, timeit
>>> timeit(delayed(np.ones, tags={'N': N})(N).sum() for N in [1000, 10000, 100000])
       wall_time
N
500     0.000250
1000    0.001134
10000   0.283048

where we time the execution of np.ones(N).sum(),  with each run being explicitly tagged with tags={'N': N} specifying the relevant parameters that change between runs, do simply,
>>> timeit(delayed(np.ones)(N).sum() for N in [1000, 10000, 100000])

and do the system infer tags on its own. Which has the advantage of being more concise.

This turned out to be more challenging than expected,

even assuming scalar arguments (e.g. N) the code to achieve the functionality is non trivial
parameters names can be correctly inferred only for kwargs (e.g. N=N) not positional argument. The latter is just not possible in in Python where a function cannot have access to the locals() of the namespace from which it was called.  In the case of positional arguments one would have to fallback to arbitrary names e.g. arg1, arg2 etc. severely limiting the interest of this.
when arguments are non scalar (e.g. when it's a numpy array), it becomes non trivial to determine which attribute should be used in the result (e.g. X.shape[0], or something else). Moreover this requires a way to be able to compute equality between arbitrary objects which more complex than just obj1 == obj2 in case of pandas.DataFrames, numpy.ndarrays, etc.

In the end, I arrived to the conclusion that this feature would require to write and maintain a significant amount of non trivial code that will additionally break very easily.
Additionally in terms of readability it is probably preferable to use a separate function to generate benchmark runs anyway,
>>> def runs():
...     for N in [1000, 10000, 100000]:
...         tags = {'N': N}
...         yield delayed(np.ones, tags=tags)(N).sum()
...
>>> timeit(runs())
        wall_time
N
1000     0.000010
10000    0.000017
100000   0.000088

where one extra line to define tags is not an issue.
Mostly created this PR for future reference. Closing.


azure vm backup storage account details

Absolutely, Backup team wanted to remove the extra overhead involved in maintaining the azure backup storage.
But still if someone wanted to know how much data they are currently using on per vm basis, how can this be achieved? in overview section we can only see how much data resides in the backup storage account in total.

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

ID: b084d947-abfd-a8f9-b09f-d07f39eb5ad7
Version Independent ID: a935fe20-e074-1fb0-1810-5cf384abb55e
Content: What is Azure Backup?
Content Source: articles/backup/backup-introduction-to-azure-backup.md
Service: backup
GitHub Login: @markgalioto
Microsoft Alias: markgal

@aquibqureshi26 Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

@aquibqureshi26 , Thank you for pointing out that there's an opportunity to cross-link to the Azure Backup reporting feature. To find out the amount of data being backed up per VM, see the articles, Configure Azure Backup reports and Data model for Azure Backup reports. Reports are the only way to get the type of granularity (on a per VM basis) that you want.

#please-close

@aquibqureshi26 We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


cargo bench doesn't support --no-fail-fast

Benchmarks are "tests" in that they can also fail, but in some cases you don't want that. Filing this to consider adding that option to cargo bench as well.

#4248 is merged, maybe this can be closed ?


Bugfix: Replace link to twitter account with new twitter account

New Twitter Account: https://twitter.com/codeinstitute

Could you point out the file?


Fix JSDoc typos in BooleanFromUnknown and split functions for Schema package

Type

[ ] Refactor
[ ] Feature
[ ] Bug Fix
[ ] Optimization
[X] Documentation Update

Description

Fix typos found in the JSDocs for split string transformation and BooleanFromUnknown boolean constructor functions.

Thanks!


Migrate to Kotlin

Convert the code base to Kotlin to leverage features provided by the language.

Yep, will try to migrate when I got time.

Need a hand? Will shoot some PR your way if that's okay.

Sure, please go ahead.  Thanks for your contribution.

Hi @thyrlian, I have started working on migrating the project to Kotlin. Here, https://github.com/thyrlian/AwesomeValidation/pull/75 as the initial PR, I have started with few test classes.
Please let me know if you would like any changes in this. I will follow up with rest of the test cases and if all is well then I will start migrating the library as well.

Thanks @shubh10 for your PR, will check once I'm free.

@thyrlian sure. Take your time. I'll work on rest of the codebase once we are okay with this.

@thyrlian Here is new PR: #84

@thyrlian Here is new PR: #84

Hey @temirnurdin could you please review https://github.com/thyrlian/AwesomeValidation/pull/75 whenever you get a chance

Hey @temirnurdin could you please review https://github.com/thyrlian/AwesomeValidation/pull/75 whenever you get a chance


[Docs Site] clipboard: do not copy unselectable elements from codeblocks.

The codeblocks seem to tag tokens that should not be copied with the class nameCodeBlock--token-unselectable. We use that to cloneNode() the code element and remove children with that class name, before getting the innerText.
This safely removes the leading $ in languages like bash, while keeping it in other languages like JS. Other languages should work as expected according to the syntax definitions.
Fixes #5474

Is there a way to generate the pages preview. I see that on other pull requests.

Hey @themetanull - unfortunately we don't support deploy preview PRs on forks right now, but I def see why this is something we can and should get merged. Can you work up a quick video demo-ing it real quick? Or even some screenshots? It will probably be faster than any other way of reviewing :D

Added deep: true to the cloneNode().
Here is a screen recording :)
https://user-images.githubusercontent.com/94995512/195790611-d7d32ffb-135c-427c-ae88-fb18811f3a07.mov


[Website] Add Skype to showcase

Adds Skype to pinned list of apps.
Moved QQ out of pinned apps to ensure only 8 apps are displayed in the homepage.
Alphabetized unpinned entries.
Test Plan
cd website && npm start
open localhost, verify showcase renders as expected

@hramos this looks good to me!


Agent and analyzer taking lots of  cpu cycles and memory

  insight                    netflow-collector-skydive-agent-b26tm                     100m (2%)     2 (51%)      512Mi (3%)       8Gi (61%)      27d
  insight                    netflow-collector-skydive-analyzer-7497cd8b79-5gz8v       100m (2%)     2 (51%)      512Mi (3%)       8Gi (61%)      27d
  insight                    skydive-operator-67c958f454-4rxl6                         0 (0%)        0 (0%)       0 (0%)           0 (0%)         27d

We can see from the above snapshot that the agent and analyzer is taking 2 cores  (and has exceeded the limit we put on it) with requests  as 100m. What is the reason behind such a huge cpu usage. In fact memory consumption is also very high. 61% of the assigned 8GB limit. We used https://github.com/skydive-project/skydive-operator to  install the operator on IBM Cloud classic infra kubernetes service.
Kubernetes version is v1.16.14

Hi @ashishth09 can you explain more on the environment ::  how many hosts + pods ? and what workload is running in that environment ?
Also::
(1) I see 27 days ... is that high cpu new (after long time) or after reboot things are ok ?
(2) 100m to the best of my knowledge is 0.1% of a core. can you paste the command that you used to get that output ?

Hi @ashishth09 can you explain more on the environment ::  how many hosts + pods ? and what workload is running in that environment ?
Also::
(1) I see 27 days ... is that high cpu new (after long time) or after reboot things are ok ?
(2) 100m to the best of my knowledge is 0.1% of a core. can you paste the command that you used to get that output ?

@eranra
We are getting the above information, will share it once we have it.
we used kubectl top cmd.

@eranra
We are getting the above information, will share it once we have it.
we used kubectl top cmd.

@eranra
Skydive was installed on 20+ clusters. it was after installation that it is showing high cpu and reboot didn't work. we had to uninstall it completely.

@eranra
Skydive was installed on 20+ clusters. it was after installation that it is showing high cpu and reboot didn't work. we had to uninstall it completely.

@ashishth09

How many nodes you had on each cluster and how many pods on each node also how many flows per sec. I am trying to understand the amount of traffic in your systems to understand if this is connected. On typical machines captures are not very extensive but if you configure multiple captures (on many interfaces) and have a lot of traffic it might cause the CPU to go high

There are multiple alternatives, some are to reduce the number of in parallel captures , some are to move to more efficient captures like ebpf  ( http://skydive.network/blog/skydive-with-ebpf.html) but before going there, maybe you should check things like that 100m is that really 2 cpus that skydive consumes or much lower than that?

@ashishth09

How many nodes you had on each cluster and how many pods on each node also how many flows per sec. I am trying to understand the amount of traffic in your systems to understand if this is connected. On typical machines captures are not very extensive but if you configure multiple captures (on many interfaces) and have a lot of traffic it might cause the CPU to go high

There are multiple alternatives, some are to reduce the number of in parallel captures , some are to move to more efficient captures like ebpf  ( http://skydive.network/blog/skydive-with-ebpf.html) but before going there, maybe you should check things like that 100m is that really 2 cpus that skydive consumes or much lower than that?

@eranra ,
Do you know, how we can verify 100m is that really 2 cpus that skydive consumes or much lower than that?

@eranra ,
Do you know, how we can verify 100m is that really 2 cpus that skydive consumes or much lower than that?

@ashishth09 easiest way, if you can connect to the k8s node (the VM)  is to execute something like ps aux --sort=-pcpu | head -n 10 this will show top 10 cpu consuming processes on the node ... make sure you connect to the correct node running skydive analyzer and agents. Another option is to increase the limit in the deployment and deamon-set and see if skydive works better. For example change to 1000m (== 1 virtual CPU)

@ashishth09 easiest way, if you can connect to the k8s node (the VM)  is to execute something like ps aux --sort=-pcpu | head -n 10 this will show top 10 cpu consuming processes on the node ... make sure you connect to the correct node running skydive analyzer and agents. Another option is to increase the limit in the deployment and deamon-set and see if skydive works better. For example change to 1000m (== 1 virtual CPU)

@ashishth09 is this still relevant ???? if not please close


Added custom icon image

This PR fixes issue #57
It was used the same approach as the ObjC port of SLCAlertView where there is a Custom type of SLCAlertViewStyle and the showTitle method has a parameter for the custom icon image.

@aaadonai: This branch has conflicts that must be resolved, could you fix this? I will merge it once it's done. Thanks

@aaadonai I think I merged https://github.com/vikmeup/SCLAlertView-Swift/pull/115, and then it throw me this error. Should I revert that back and merge your change, what do you think?

@vikmeup The #115 PR has the same fix but a different approach. I will close this PR, it doesn't need  to be merged anymore. Thanks for looking into it.


draft migration path doc from ML Model to MLM Extension

This adds a migration doc that describes similarities and differences in capabilities between the ML Model Extension and the Machine Learning Model Extension. It also highlights how some field names have changed, enums have been expanded, and some fields have been removed. It notes that the ML Model Extension is not maintained and it's primary public facing implementation is deprecated.
If this is approved and merged I think we should then approve and merge #16. Once the repo ownership of https://github.com/crim-ca/mlm-extension/tree/main is changed to STAC Extensions, then I can update the links in this migration document to point to the new repo url.
I think I will need assistance from the STAC Extension maintainers to make a request to CRIM to initiate a move of the entire repo since we want to preserve stars, github history, issues, etc. cc @fmigneault

Thanks for the comments @gadomski
Unfortunately I don't have the bandwidth to provide a migration script right now. There might be some nontrivial decisions to handle in the migration. But I'm happy to review and work with others on PRs. stac-model is maintained alongside the spec here https://github.com/crim-ca/mlm-extension/blob/main/README_STAC_MODEL.md
I'm happy to merge this PR after the migration. If STAC maintainers initiate that @fmigneault can you accept the invite to do so for the https://github.com/crim-ca org? I'm not sure how full repo migrations work and who initiates.

I'm not sure how full repo migrations work and who initiates.

I've done it a few times (for https://github.com/stactools-packages/) but it's been a minute. I believe @fmigneault can go to https://github.com/crim-ca/mlm-extension/transfer and then choose stac-extensions as the target organization — I'd try that first, at least.

@rbavery @gadomski
I believe migration would be the right way to handle the transfer to preserve stars, issues, etc. I think GitHub even defines some redirects for people using the old links (but don't quote me on that 😅). This would also allow CRIM to re-fork the stac-extensions repo to indicate appropriate redirects and maintain a mirror of the old schemas (https://crim-ca.github.io/mlm-extension/), since those are employed by existing STAC deployments.
However, once this is done (and that I get the approvals from CRIM higher ups), I will need from an admin of stac-extensions to provide the necessary permissions to adjust the settings. The migration page displays a warning that all configured protection rules will be removed during the transfer. I would like to re-enable those, and make sure @rbavery, @languith and @fmigneault (at least) have the necessary access to manage the repository.

I will need from an admin of stac-extensions to provide the necessary permissions to adjust the settings.

No problem at all ... when migrated, I'll be able to add you as a maintainer of the repo so you can PR (or just YOLO change) anything as needed. You will also be able to add others as needed.

Hi all, I incorporated all of Francis' suggestions. I think this should be good to merge then?


CollapsingState Improvements

As per https://github.com/emilk/egui/discussions/1566
Concerns are the FnOnce > Fn change, which shouldn't realistically impact any icon drawing functions and the ergonomics of a "no collapser" mode, since something like https://github.com/4JX/egui/commit/f3234a1f0dd400d33bedfe46c4f3ddff6cbff423 would need to be done.

Would like to add the commit mentioned above as well if it isn't deemed that much of an issue

My intent for CollapsingState was to make it more of a building block, and not something you customize. I would rather see a solution that looks something like this (from a users perspective):
let mut collapsing_state = …;
let header_response = ui.horizontal(|ui| {
    ui.label("Header");
    collapsing_state.show_toggle_button(ui, my_icon_painter);
});
collapsing_state.show_body(&header_response.response, ui, |ui| {
    ui.label("Body");
});

This keeps CollapsingState simple, and makes for a much more powerful and flexible solution.

This keeps CollapsingState simple, and makes for a much more powerful and flexible solution.
Oh, I was unaware a state could be constructed with an arbitrary response, hence the approach of this PR. I'll close it and draft a new one with the approach you described, as it seems a lot more useful.


Add unfurl support so apps like slack can show content preview

https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254

This is finally coming soon as bobbin 2 nears launch!


Removing Python 3.8 from the github workflows

Describe changes
I implemented/fixed _ to achieve _.
Pre-requisites
Please ensure you have done the following:

[X] If my change requires a change to docs, I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[X] I have updated ref-zenml in .github/workflows/ci.yml accordingly (if you don't know - main would be a solid choice)

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other (add details above)

Closing this for the PR here with the right branch name.


[Feature] Voice Search

🛠 Fixes Issue: #83
Search by Voice functionality Implemented
📷 Screenshots
https://github.com/Fenrir-04/Algo-Media/assets/115306535/398dc957-0e6f-47c0-b3d7-8b9b73b0f74b

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.
[x] I am a participant of GSSOC23

Hey, I think due to the recent features added, there are merge conflicts in SearchBar.jsx file, please pull the latest changes from the main branch and resolve the conflicts.

@KOMALDEWNANI I have resolved the conflicts.

Please add Gssoc and level label. I am a contributor in GSSOC'23.


Python interface does not print output in colab

The solver does not produce output to the terminal when used via the python interface within google colab.
Example here: https://colab.research.google.com/drive/1HgEPqJAk__I6QKRkLz7jynTy07YEyKmD#scrollTo=KsnL1mMgOBIf

The issue here is that there is a mismatch between the Rust std::io::stdout and python's sys.stdout when running inside a notebook in some cases.
Possibly relevant links for a fix:
https://github.com/PyO3/pyo3/discussions/1918
https://github.com/PyO3/pyo3/issues/2247


Try fixing ReadTheDocs

The hook seems to work now https://readthedocs.org/projects/bqplot/builds/19315259/ though it does not report back to Github unfortunately


Disable auto update

Disable auto update.

Was it already implemented?

From a quick search of the online docs.
https://code.visualstudio.com/docs/supporting/faq?source=post_page---------------------------#_how-do-i-opt-out-of-vs-code-autoupdates


In mobile input composition, autocomplete won't update

Like above gif shown, when I input ㄘㄜˋㄕˋ, the autocomplete is correct.
But, if I try to delete some of the composition words, the autocomplete won't update.
The normal situation should like below:

Thanks for your help

We are currently only applying the input to the actual document when the IME composition finishes. That means that addons, such as the completion addon, won't see updates as you are composing.
I might at some point change this, but for now, this is how it works.

I don't think we are going to change this, since we try to not disrupt the browser when doing composition. Right?

The plan is to update the editor state on each input change. There will be some trickiness about what you can do in these updates without causing the composition to be aborted (placing an inline widget in the composed code, for example, wouldn't work, but overlaying it over the editor should be fine).
I've opened https://github.com/codemirror/codemirror.next/issues/30 for this

J


fix: support for cookies in ContinueRequest

I still need to see why the data is not surfacing on the request correctly, but the feature should now work.
The WPT test will pass once we fix the request->headers.

@sadym-chromium there are WPT test for this, but the data they expect is not correct from our side, I am looking into it, happy to wait to merge this after that investigation.

@sadym-chromium there are WPT test for this, but the data they expect is not correct from our side, I am looking into it, happy to wait to merge this after that investigation.

I think we can merge this and update the solution to finegrain it later


Toolkit and README release prep

README changes:

updates all Toolkit URLs to the public repo (Esri)
update Samples URL to the public repo
updates SPM instructions to match those of the Developer Doc
updates URL to the Esri iOS SDK community page

Other changes:

use final SDK package URLs in Toolkit's Package.swift "dependencies" section
set Example app's "Mac Catalyst Interface" to "Optimize for Mac", to match SDK Examples app.

This needs to wait until the SDK is released before merging.


Problem with Azure Deployment (Failed: Packaging service backend)

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

folowing readme on deployment up to the point of "azd up"

Any log messages given by the failure

Packaging services (azd package)

(x) Failed: Packaging service backend
ERROR: error executing step command 'package --all': failed packaging service 'backend': failed invoking event handlers for 'prepackage', 'prepackage' hook failed with exit code: '1', Path: 'C:\Users\volsh\AppData\Local\Temp\azd-prepackage-4040297706.ps1'. : exit code: 1, stdout: , stderr: npm: C:\Users\volsh\AppData\Local\Temp\azd-prepackage-4040297706.ps1:4
Line |
4 |  cd ../frontend;npm install;npm run build
|                 ~~~
| The term 'npm' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the
| spelling of the name, or if a path was included, verify that the path is correct and try again.
Expected/desired behavior
I want my app with RAG deployed
OS and Version?
Windows 10
azd version?
azd version 1.9.5 (commit cd2b7af9995d358aab33c782614f801ac1997dde)
Versions
Mention any other details that might be useful

Do you have Node installed? That's required, per the local setup guide here:
https://github.com/Azure-Samples/azure-search-openai-demo?tab=readme-ov-file#local-environment
Please open a new issue if you still have an error after installing Node. Thanks!


Enhancement 27

Releasing a new version of the code to support the azurecaf_name resources - the naming convention is now based on the resourceDefinition.json file and can be easily updated without changing the golang code.
This updates should address #27 and be ready for a v1

LGTM


Id column not assigned to a datagrid.

Steps to reproduce
I was unable to use the data provider updateRecords method as it could not pick the selected row's ID.
It may have happened when I changed the underlying data source even though I refreshed the columns.
Video showing a same data provider code resulting in a different response for the 2 grids. Notice the Id field drop-down:
https://github.com/mui/mui-toolpad/assets/92228082/f317fe16-213a-4ec6-97be-6755e274cd1b
Search keywords: id column

Please add a reproduction, otherwise we won't be able to debug this problem.


Adjustments as discussed in PR #139

AWSClient’s static shared instance of eventLoopGroup is now private.
AWSClient’s initialiser does not have a default property for EventLoopGroupProvider anymore.

Did you mean to set eventLoopGroup private? Thought we were setting sharedEventLoopGroup to private.

All good


Fixes wrobins/cordova-plugin-msal#64

This is a suggestion for a fix for issue #64.

Thanks for the fix! I'll incorporate that into the next release.


Fix build failure and add docker make rule

I'm not actually sure how the build failure was happening. We have the lock file version controlled with a specific nightly version. It's not clear to me how we are suddenly using a version of things that requires llvm_asm.
Regardless, update to a new nightly and switch from asm to llvm_asm. We also have a new docker container version that does not run as root. However, it must run as root in CI so it can write to the github volume.
We also introduce a docker-% make rule so people can use the docker image more easily.

CC @ntegan this should fix the issue you saw


fix def get_info(self, html) function improvement issue

Hey! I fix your issue with get_info.

Sorry, the test is failing. Can you fix the test and re due the pull request?


feat: Ionic plugin/platform auto updating of package.json

From @lewistaylor on April 10, 2015 10:14
Type: feat
Platform: all
We are having a lot of issues with the auto plugin/platform feature that seems to happen with ionic (and not cordova?).

crosswalk added a conflicting version of in-app browser to one we had already added.
variables aren't automatically added either when creating a plugin

I realise the second is a tough problem to solve given that different argument could be passed, so instead it would be great to turn off this functionality. We are perfectly happy keeping track of our own list including vars, and using a gulp task to install them.

Copied from original issue: driftyco/ionic#3501

I believe this has already been taken care of in the latest CLI updates.


Load files at "runtime"

Is there a way to load scripts at "runtime"?
I'd like to add some logic that runs only if a "partial" deploy.cake file is found as part of a CI pipeline.
The optional logic could also be run as separate script, but before doing that I'd like to know if there is any similar solution already available.

There is a mechanism to load scripts, yes.  This is done via the load pre-processor directive which is documented here:
http://cakebuild.net/docs/fundamentals/preprocessor-directives
However, this is easier included, or not, you can't make a decision on whether it is included.
What I think you might be after is this:
http://cakebuild.net/api/Cake.Common.Tools.Cake/CakeAliases/5FCD85B6
Where you could optionally execute a particular Cake script.

Thank you @gep13 , CakeExecuteScript looks exactly what I was looking for.


Update File Header Copyright Years

Can one of the admins verify this patch?

These should be using year ranges. For example, 2015' should be replaced with 2015-2017instead of2017`. We need to set up wpiformat with this repo at some point.

Can one of the admins verify this patch?

Should be fixed now, I rewrote the script to use the "2016-2017" style.
Searching this repo on github shows 66 files with a copyright header (not including the various Google ones), so I think all of them are updated.
Something kind of odd, the license.txt file has the FIRST/YEAR backwards from all of the other source files. I dunno if that's intentional or not, so I left it as-is, but it would be a quick fix.

The ends of the comment lines should line up, by the way.
I appreciate you working on this, but wpiformat solves this whole class of problems. #86 adds wpiformat support to this repo. It performs a lot of mundane tasks automatically like updating the copyright years correctly and makes changing the year ordering trivial. Eventually, almost all the warnings cpplint.py produces will be automatically fixed by wpiformat as well.

No problemo, it was just a couple of sed commands to change all of them. If you'd like, I could pretty easily modify it to also fix the spacing so the comment lines are aligned properly, but it sounds like wpiformat is a better option so feel free to just close this PR.


change Biblio status facet filter fields to "Draft" and "Validated"

Describe the improvement
facet filter for status should use same terminology as used in the pill shown for individual publications.
replace "private" by "Draft"
replace "public" by "Validated" (or "Published" ?)
Do we need to or can we distinguish status "Published" from status "Validated"? If not, I think "Validated" is not correct for published publications that are not reviewed yet.

interesting, when is something ready for review? @sdebodt @nics
how is it done in the old backend?

public and classification == U

strange, so those publications are already visible from the public website?
e.g. https://biblio.ugent.be/publication?classification=U

yes that's intended

For reviewers add facet for classification? @nics @sdebodt
Best to keep number of facets low.

yes later, this issue just needs 2 labels replaced by their translations to close it:
replace "private" by "Draft"
replace "public" by "Validated"

or "public" as "Published"? That is more accurate. Otherwise we'll have a "bug report" rather claiming that the filter does not work as expected

follow the design for now, we can't just change this ad hoc

@nicolasfranck @nics for the pills, there are 3 values "Draft", "Validated" and "Public". Will "Public" not appear anymore after this translation?


Image upload doesn't work(ImageBlobReduce: failed to create Image() from blob error)

I'm trying to upload an image to https://excalidraw.com(also on a self hosted app).
Same error: Uncaught (in promise) Error: ImageBlobReduce: failed to create Image() from blob. It's a 8kb png image.
Using Firefox, I'm getting the 'Couldn't insert image. Try again later...' popup. There's no popup on Chrome, Safari, Opera, Brave.
I've managed to upload an image(also png) and I saved the content of the canvas in a mysql database table. When loading back the content images are blank. The same base64 string displays correctly used on img src in a simple html file. The files{} object contains the image element and has the same id with the one from elements array.

Any ideas on how to resolve this? It’s leading to issues in the self-hosted plugin.

@MenamAfzal can you post the image, ideally the original link if hosted so that github doesn't convert/compress.
What browser are you using, and in what way are you uploading? (drag and drop/ file picker..)

Hey @dwelle..., I appreciate your prompt response.
Em working on setting up a basic version of Excalidraw locally, and it’s running smoothly. However, when I try to upload a   file (through the file picker) , it crashes. Interestingly, the image uploads just fine when I drag and drop it. I’m currently using "@excalidraw/excalidraw": "^0.17.6" and "react": "^18.3.1"
Error says
image-blob-reduce.esm.mjs:3364 Uncaught (in promise)
Error: ImageBlobReduce: failed to create Image() from blob
at env.image.onerror (image-blob-reduce.esm.mjs:3364:46)
Promise.then

On excalidraw.com it works?
We'd need a reproducible image.

Tried it on Safari—and it’s working perfectly.  Guess it’s something with Chrome.

Tried it on Safari—and it’s working perfectly.  Guess it’s something with Chrome.

This is because，change the image file ext from .jpg to .png， and then imageBlobReduce preveive it is jpg. cause the error.
@MenamAfzal @dwelle


fix(ts-model-api): new single childs can have correct concept

Prior to this fix when using the setNew method of the SingleChildAccessor class, the created node had no concept and could not be given one. This PR introduces the possibility (while maintaining backwards compatibility) to provide a concept when invoking the method.
// before
const typedNode: BasePlaceholder = foo();
const childNode: IPlaceholderContent = typedNode.content.setNew(); // Actually UnknownTypedNode
expect(isOfConcept_IPlaceholderContent(childNode)).toBeTruthy(); // <---- fails

// after
const typedNode: BasePlaceholder = foo();
const childNode: IPlaceholderContent = typedNode.content.setNew(C_IPlaceholderContent);
expect(isOfConcept_IPlaceholderContent(childNode)).toBeTruthy(); // <---- succeeds

To be verified by reviewers

[ ] Relevant public API members have been documented
[ ] Documentation related to this PR is complete

[ ] Boundary conditions are documented
[ ] Exceptions are documented
[ ] Nullability is documented if used

[ ] Touched existing code has been extended with documentation if missing
[ ] Code is readable
[ ] New features and fixed bugs are covered by tests

After discussion with  @odzhychko  we will split this into two separate PRs. This PR will then only take care of the fix.

:tada: This PR is included in version 8.7.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Toyota chime on engagement

The stock system chime plays on engagement

Have an example? I haven't seen this


Change Video Camera Resolution

Hello guys, from my previous experiences with Webrtc what I saw, and also did for my personal project, changing the camera resolution during a video call was replacing the old track with the new track created.
But ... my question now is how do we achieve this or maybe there is another way or ways of doing this with livekit support?

Hi!
for this you can use the restartTrack API (https://docs.livekit.io/client-sdk-js/classes/LocalVideoTrack.html#restartTrack) and pass in your updated capture options!

@lukasIO Ok, thank you ... will test this today and let you know if it works  👍.

Hi @lukasIO, can you maybe provide a code example or something I cannot find what I have to chain in order to get access to the LocalTrack or what I have to do so I can have access to the restartTrack method...
Thank you!

@lukasIO I think it should be like this:
room.localParticipant.getTrack(Track.Source.Camera).videoTrack.restartTrack({resolution: myNewResolution})
the key difference is you should also use the videoTrack so you can restart it, right?
For me, this is working I mean I can see the camera restarting and the resolution changing, but:
There might be a "bug" here ... maybe you can help me with this:
I see there "might be" a "bug" regarding the restartTrack method not updating the LocalVideoTrack dimensions
Why do I say this? Because after successfully restarting the video track I tried 2 different approaches to see the current dimensions of the LocalVideoTrack and using the cemeraPublication.dimensionsgave me the old dimensions and also usingroomCall?.localParticipant?.getTrack(Track.Source.Camera)?.videoTrack?.dimensionsthe same thing but logging out thiscameraPublication?.track?.constraintsgives me the correct updated constrain but the thing is.constains is not part of the abstract class Track (export abstract class Track extends (EventEmitter as new () => TypedEventEmitter) {}`)
But somehow it gets populated...
Maybe @lukasIO you can take a look or idk ... just asking :).
Also are you aware of a method like the one on GoogleMeet  to change the received resolution?

to change the received resolution LiveKit has adaptiveStream built in, which will match the resolution automatically to the size of the video element, if you use the recommended attach workflow. https://docs.livekit.io/guides/room/receive/#adaptive-stream
In case you don't want to use adaptive stream, you can set the received quality manually with publication.setVideoQuality https://docs.livekit.io/guides/room/receive/#simulcast-controls

@lukasIO For what the project wants to achieve is to allow any user to set the resolution received from other users ... Like the Google Meet platform with the option called Receive resolution (maximum).

So seems like the way to go is to use publication.setVideoQuality event though does not support setting actual resolutions like 360, 720, etc...
export enum VideoQuality {   LOW = 0,   MEDIUM = 1,   HIGH = 2,   OFF = 3,   UNRECOGNIZED = -1, }

you'd need to disable adaptiveStream and call setVideoDimensions

Ok, thank you, guys. Will try this today later in the day and let you know,
Thank you again 👍

@lukasIO @davidzhao I cannot find how can I can get access to the following types ...
track: RemoteTrack,
publication: RemoteTrackPublication,
participant?: RemoteParticipant,

I've checked the docs as @lukasIO suggested (https://docs.livekit.io/guides/room/receive/#simulcast-controls) but what types the function accepts I can not get hold of them :(
Maybe you guys can help me, please :)
Thank you very much guys 👍

Oh, I see so the function is supposed to work with the trackSubscribed event fired when someone else joins the room and turns on the video camera, got it ... makes sense now.

@Mihai-github please refer to our docs and example apps (in this repo).


Fire wall

Or another solution to eliminate the slowest cars.

Works, but not done correctly, should be improved.


Fix yii\web\UploadedFile::saveAs() failing when error value in $_FILES entry is a string

This fixes a regression introduced in v2.0.32 (#17729).
saveAs() must not check strict equality as error can be a string. It returned early if error === '0' instead of the integer 0.

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues
❌

Thanks!


SQL Server support

Codecov Report

Merging #10 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #10   +/-   ##
=======================================
  Coverage   93.13%   93.13%
=======================================
  Files          41       41
  Lines         641      641
  Branches       28       28
=======================================
  Hits          597      597
  Misses         43       43
  Partials        1        1

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 8bc24ac...49b1fc3. Read the comment docs.


[Office Hours] Check out NH Alternate Icon issue

Matt from NH reached out to debug a specific problem with alternate Icons on the iOS App.

https://github.com/nighthawk-apps/nighthawk-ios-wallet/pull/25
We worked it out!


Support for $penv{} in include in CMake(User)Presets.json

Brief Issue Summary
https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html#includes describes that $penv{} can be used in include statements. This can be quite useful, particularly for centralizing user settings. One useful way of using this can be:
{   "version": 7,   "include": [     "$penv{USERPROFILE}\MyPresets.json",   ] }
This works with CMake, but it seems like it does not play well when configuring from VSCode with CMake Tools.
CMake Tools Diagnostics
No response
Debug Log
No response
Additional Information
No response

@jogerh Could you provide some information about how it doesn't seem to play well?
A couple of things that could be helpful for us to have are the following:

CMake Tools Diagnostics
Repro project that shows the issue. Detail what you are expecting versus what happens.

Thanks!

Relabeling as an enhancement because this is asking for a part of CMakePresets v7 support, which we don't yet formally support.