multiple modules competing for space

          That seems to have fixed it. Thank you for taking a look. I'll mark this as closed.

On a slightly different topic, do you have any advice for running multiple instances of this module? They are stacked on each other in the region and will often compete for space. If one has a blank text file, it will write, then the other with text will write and it will flash on and off. I added classes to the config to make them distinct, but it doesn't help. If I comment one of the modules out, I get static text. Do I need to do the duplicate folder trick with this module?
     {
       module: 'MMM-SimpleText',
       classes: 'cacheStatus',
       position: 'middle_center',
       config: {
                 filePath: { 'value': 'cacheStatus.txt' },
                 refreshMs: { 'value': '1000' },
                 color: { 'value': 'white ' },
                 fontSize: { 'value': 'large' }
       }
     },
    {
       module: 'MMM-SimpleText',
       classes: 'backingStatus',
       position: 'middle_center',
       config: {
                 filePath: { 'value': 'backingStatus.txt' },
                 refreshMs: { 'value': '1000' },
                 color: { 'value': 'white ' }
       }
     },

Originally posted by @mikeyounge in https://github.com/SaltyRiver/MMM-SimpleText/issues/6#issuecomment-2061511152

Same here. I also want to use the module twice.
And for the second module definition the filePath property is ignored respectively the file of the second module is not reed.

@Race666 no this was a solid solution, cant think of a better way to do this. maybe index based, but that would bring other problems. doing it by id seems good. thanks for your implementation


docs/examples/users.md: pgcrypto includes uuidv4 generation

No need to use the uuid-ossp extension
From http://www.postgresql.org/docs/current/static/uuid-ossp.html :

Note: If you only need randomly-generated (version 4) UUIDs, consider using the gen_random_uuid() function from the pgcrypto module instead.

gen_random_uuid was only added in to postgres in version 9.4. I'm not sure what version the docs are meant to be compatible with?

Good to know. I must have learned about generating uuids from some outdated docs.
Have you tried this on your machine to double check if it works?

Thanks for updating this part of the docs.

This did not work for me (pgsql vers. 9.5), I got "function uuid_generate_v4() does not exist" error for /rpc/signup and had to do
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
create extension if not exists pgcrypto;

Thanks for pointing out the problem. Would you mind sending a pull request to fix up the docs?

Done, PR #525

The solution should be to update to use gen_random_uuid


add new settings: color (red) icon for unread mail and separate unread mail counts

Hi - I stumbled on this app when looking for a replacement for the old Gmail Notifier app which I used to love as a quick way to see if I have new mail w/out looking at my browser.
I had Gmail Notifier setup so each mail account had it's own icon by running 2 instances of it (http://diaryproducts.net/about/operating_systems/mac_os_x/multiple_google_notifier_instances_for_multiple_accounts)
Anyway, I wanted to do something similar to this w/your app.. Rather than add multiple menu bar icons though I just figured it'd be good enough to show the unread # for each account separated by ":" (ie: 2:3").
I also wanted a red icon which I know Apple discourages for menu bar icons.. but, it's still disabled by default. btw - I just tried to quickly change the color of your icon - I'm not graphics expert!
I figured you might be interested in pulling these changes.. others might also want to see something similar
btw - thanks for creating this project and making it open source!!

@jpage4500 it's a nice addition and thanks for the PR.
But I'm not going to merge this to master for two reasons:

I don't think colored icon (the red one you added in this case) works with Yosemite dark mode. Mail Notifr as many other apps are replacing colored icons with black/white ones.

I'm afraid 2:3:3 is unnecessary for most of users and it makes the menu bar more cluttered. I have more than 3 account, I definitely don't want to look and remember which number is for which account. I'd rather having a total account to remind me that I have pending emails to response.

Thank you again for improve the features!


Create pipelines

We need the following pipelines:
Create release (Should create a new release of the client)
Continuous Integration. (Should be run on every push and verify the state of the code)

CI is done and working, and I have a possible example for CD here if that is the route we are going.
The linked example uses a string of commands to build the new docker image and remove old versions of it:
DOCKER_STOP_CMD
docker stop bot-run && docker rm bot-run
DOCKER_START_CMD
docker image prune -f && cd /path/to/source && docker build -t bot-image -f Dockerfile . && docker run -d --name bot-run --restart always -v /path/to/configs:/App/Config -v /path/to/database:/App/Database -p 8080:80 bot-image
Granted, there will not be a Config volume as the configs are stored as environment secrets, but this, along with this file is how I usually do CD.

CI is done and working, and I have a possible example for CD here if that is the route we are going.
The linked example uses a string of commands to build the new docker image and remove old versions of it:
DOCKER_STOP_CMD
docker stop bot-run && docker rm bot-run
DOCKER_START_CMD
docker image prune -f && cd /path/to/source && docker build -t bot-image -f Dockerfile . && docker run -d --name bot-run --restart always -v /path/to/configs:/App/Config -v /path/to/database:/App/Database -p 8080:80 bot-image
Granted, there will not be a Config volume as the configs are stored as environment secrets, but this, along with this file is how I usually do CD.

The current pipeline is sufficient for my common faf deployment workflow.


Update kubeflow sdk version

This change is

@jomach Have you signed the CLA? See the previous comment from the googlebot.

@sarahmaddox Hello, Yes but only after creating the PR. Do I need to re-create the pr ? Sorry first time on this project

cool, a new comment is enough.

@jomach To avoid similar problems, in fact, personally I suggest to reminder user to download latest version of the sdk (need to describe how to get latest one). Otherwise, need to update this when the new pkg release after some days. Thanks.

@jinchihe So the sdk version does not match the version of kubeflow itself. I did the trick of just searching for the latest version on  https://storage.googleapis.com/ml-pipeline/ which I cannot recommend for normal users.  Where would be a good place to point users to the correct version ?

@jomach

Where would be a good place to point users to the correct version ?

Probably this page: https://github.com/kubeflow/pipelines/releases

I updated the docs. Please check

/assign
/ok-to-test

Preview: https://deploy-preview-688--competent-brattain-de2d6d.netlify.com/docs/pipelines/sdk/install-sdk/

Thanks!
/lgtm
/approve


chore: move all snapshot to insta

Summary
This PR move all snapshot to insta and we will remove rst and outdated expected folder in the later PR, and when you want to update snapshot do the following commands
cargo insta test // run snapshot test
cargo insta review // review every changed snapshot
cargo insta accept // accept all new snapshots unconditionally

the new snapshot are generated in markdown format so it's easy to read and compare and support syntax highlight( this is inspired by rome's snapshot)
we treat .snap as markdown to support highlighting, so it needs configuration for your editor, I already configure it for vscode, if you use other editor you may need to configure your self

Test Plan
all the snapshot moved from expected folder to snapshot folder

I prefer dumping all the files into a single directory so it is easier to search in your IDEs.
Here is my setup: https://github.com/web-infra-dev/oxc/blob/66e883ae8c3caa0bbe261d6cc48fb424651af89b/crates/oxc_linter/src/tester.rs#L92-L97

I prefer dumping all the files into a single directory so it is easier to search in your IDEs.
Here is my setup<EMAIL_ADDRESS>
I just follow rome's convention, they put snapshot near the case, but I'm open to change this behavior, I don't use snapshot often so maybe not knowing the tradeoff well, what's your opinions @hyf0 @h-a-n-a @IWANABETHATGUY

I prefer near the case. Just like you would put the build output near the input folder. It will avoid jumping around some folders.

https://github.com/web-infra-dev/rspack/actions/runs/6020195526/job/16331139146?pr=4061#step:6:1002 spot a unstable codegen bug, maybe we need skip it first and fix it in separate PR, cc @underfin

https://github.com/web-infra-dev/rspack/actions/runs/6020915278/job/16333122639?pr=4061#step:8:368 the windows ci failed because of other reasons, fix it in other PR


Envoy leaks cluster members when using  STRICT_DNS and ClusterLoadAssignment

Title: Envoy leaks cluster members when using  STRICT_DNS and ClusterLoadAssignment
Description:
We are using envoy sha f1aee97b079ad4a0130583ef7cd656351dd70bd7 with a configuration that sets up DNS entries in our cluster load assignment registered via a CDS
"load_assignment": {
     "cluster_name": "cluster_name",
     "endpoints": [
      {
       "lb_endpoints": [
        {
         "endpoint": {
          "address": {
           "socket_address": {
            "address": "host1",
            "port_value": 10652
           }
          }
         }
        }
       ],
       "load_balancing_weight": 70
      },
      {
       "lb_endpoints": [
        {
         "endpoint": {
          "address": {
           "socket_address": {
            "address": "host2",
            "port_value": 10652
           }
          }
         }
        }
       ],
       "load_balancing_weight": 30
      }
     ]
    }
   },

When we had this envoy would resolve the DNS and continuously say in the debug logs that the hosts have changed, and so it would add new members to the cluster.  The only indication this was happening was in the cluster membership add/change stats and the cluster member list under 9901/clusters.  The config dump always showed the correct load assignment configuration.
I should note that the host names in our cluster addresses were aliased in /etc/hosts and did not need to be resolved via pure DNS. I tried to replicate this scenario in a docker container using a public IP like from google.com but was unable to reproduce it, so not sure if this is related.
When members are configured with health checks we ended up in a situation with a health check DDOS as envoy kept adding new cluster members.
We switched over to using STATIC ip addresses, with the exact same configuration, and the membership changes stopped and stabilized.

Sure @mattklein123 I've been trying to look at the issue. Will do on the weekend if required since I'm travelling back today.
Paging @snowp too just in case you have spare cycles for this 🙂. Thanks!

Hum, seems false positive. Will investigate more.

There are at least to issues here:

The updateDynamicHostList is called per resolve async process, hence the all_hosts_ is not updated properly by the updated_hosts.
The final_hosts can have duplicated hosts.

I think there is an issue in that the all_hosts_ stuff was based around the idea that the entire cluster is updated at once. This holds true for EDS where the entire cluster EDS update comes at once, but not true for STRICT_DNS since it's callback based per resolve target.
I think we probably want to not use the updated_hosts mechanism for STRICT_EDS (since it's based around updating an entire priority) and instead keep track of what hosts were resolved per resolve target. With that, we could compute the diff for each resolve target after resolution and update all_hosts_ based on that (allowing cross priority moves).

@dio its tough for me to test out a new build unfortunately,  we use a custom fork here at stripe and we pull in the main line patches as necessary.  If you do need a beta tester let me know and I can go through the process to do it, but just wanted to respond and let you know I wasn't ignoring your request

@dio I'm pretty we're hitting this issue here at Lyft and I can try to test it out.

@tonya11en much appreciated! That will be really helpful. Thank you!

@dio I was in the process of building/testing the change, but I have to revert the change that introduces this bug for now. I can see if we can introduce the issue to a subset of our fleet, but if the change looks OK to merge, I think we should just go ahead and then I can just deploy it and monitor.
Let me know if that works for you.

@tonya11en I think that’s fine. Out of curiosity, which commit do you think introducing this bug?

Sorry, I meant I'm reverting the configuration that allows this bug to manifest. It's hard to tell exactly which commit introduces this, but my first guess is that when b32eabfc141760ec14622a4a2a2f0ab0a741cd6c went out:
commit b32eabfc141760ec14622a4a2a2f0ab0a741cd6c
Author:     Dhi Aurrahman<EMAIL_ADDRESS>AuthorDate: Wed Jul 25 00:01:23 2018 +0700
Commit:     htuch<EMAIL_ADDRESS>CommitDate: Tue Jul 24 12:01:23 2018 -0500

    upstream: implement Cluster's load_assignment field (#3864)

    This patch implements load_assigment field in CDS' Cluster.
    This change specifically adds the implementation of the new load_assigment field
    for clusters with discovery-type: STATIC, STRICT_DNS and LOGICAL_DNS.

    While adding this load_assigment field implementation to Cluster,
    this patch also allows specifying optional (active) health check config per specified upstream host.

    Risk Level: medium
    Testing: unit tests
    Docs Changes:

    This unhides docs for endpoint health check config
    Release Notes: N/A

    Fixes #439

    Signed-off-by: Dhi Aurrahman<EMAIL_ADDRESS>
it didn't check for duplicate entries in the envoy config introduced via something like:
    load_assignment:
      cluster_name: tony_example_name
      endpoints:
      - lb_endpoints:
          - endpoint:
              address:
                socket_address: {address: localhost, port_value: 9201, protocol: TCP}
        priority: 0 # Lower number is higher priority.
      - lb_endpoints:
          - endpoint:
              address:
                socket_address: {address: localhost, port_value: 9201, protocol: TCP}
        priority: 0 # Lower number is higher priority.
      - lb_endpoints:
          - endpoint:
              address:
                socket_address: {address: localhost, port_value: 9201, protocol: TCP}
        priority: 0 # Lower number is higher priority.
      - lb_endpoints:
          - endpoint:
              address:
                socket_address: {address: localhost, port_value: 9202, protocol: TCP}
        priority: 1 # Lower number is higher priority.

But I didn't really do the necessary forensics. I'm still not sure whether the priority state manager should have been resilient to this or whether we should have caught this in the config... Either way, I think your change will fix this. Once it gets merged, we'll deploy it within a few days at Lyft and I can report back here if the problem persists.

@tonya11en thanks! Please let me know how it goes.
Yeah, I think the assumption of getting full hosts set update vs. partial (in STRICT_DNS due to the async DNS resolve process) led some confusions when I implemented that. Sorry.
Basically, the aim is good: to streamline the API and let CDS to have, somehow, EDS capabilities.

I think we might want to follow up with figuring out how to reconcile the differences in behavior between STRICT_DNS and EDS, either by getting rid of the differences or acknowledging that they'll be different and making that clearer in code. For instance, EDS guarantees that a host only exists in one priority and will reuse the host instance (and consequently HC status etc.) when a host moves between priorities. Neither of these are true for STRICT_DNS afaik.
Not directly related to this issue, so I think it can be handled separately.


Battle stop/petrify to stop animation cause character to shake.

I'm not sure why but i basically stop the next frame of animation from happening and instead of the character staying frozen it shakes.

I made a change on my fork because changing animations caused a flicker. But I changed it so last animations and frame are stored. I think the shake is caused from the updating of the vertexes. Where in old code it was always frame and frame +1. New code is last frame and frame. So if both IDs and frames are the same value. It shouldn't shake anymore. Other method could be to lock the step value so it's always calculates the same. Or skip updating the vertexes.

What I ended up doing is setting the last and current frame to the same value. I also have it checking for petrify. Right now it only automatically stops when it detects petrify. It doesn't automatically resume when it would be removed. I also added hotkeys to test stopping and starting. Works pretty good. Though if the animation is between frames it'll suddenly jump to next frame. If this is an issue we may need to move the step variables into the animation system. That way we can track the in between frames and start and stop at exactly that position.
https://youtu.be/VGsCMMj11cg


Remote Microphone Implemented

Im following this project for a while now always a quite reader :) In my version of Quasar ive finished building remote microphone using https://github.com/naudio/NAudio . Is anybody interested so i could commit.

You can fork this repo and add your changes then send a pull request, So when @MaxXor finishes his studying can merge it or anyone else can add this change to his fork too.

Ok thanks i will do that. :)

It would be better, if someone start take care of the project in another fork and we will keep work there until @MaxXor come back.

I don't think anyone need to take care of this project as I will still merge well tested PRs and critical fixes. It's very stable as of now and I don't think this will change anytime soon.

Awsome! Great that you are willing to share your work with the community.

Ive commited the Remote Microphone Feature. Work really well tested on 20 machines.

Nice work @ValonK .
Want to mention that 1 channel (mono) audio is fine for VOIP so we don't really need 2 channels (they only double the bandwidth used) unless the remote computer has microphone array ( double microphone like what I have in my laptop).
So It would be nice if we can choose the sample rate starting from 8khz up to 48khz and using 16 bit depth.
These tips are taken from an article on codeproject which is written by NAudio owner, if you have time you can take a look at the article. It can be found here : https://www.codeproject.com/articles/501521/how-to-convert-between-most-audio-formats-in-net

Thanks! yeah im a github noob so i think i will give you a download link to the project :) is that ok?

Yup, that will be fine and then it will be available for anyone else want to see the code.

http://www116.zippyshare.com/v/gSnAigrD/file.html  let me know what you think :) and what can be improved!

Great Job @ValonK .
I have cleaned up NAudio code so it is really smaller now (about 60KB added to client) instead of ~350KB .
First : You can replace NAudio files with these files in ZIP file below.
Second : You can change "channels" at audio packet to simple rate and change that combobox also in Microphone form (FrmMicrophone) and add these values :
8000, 11025, 16000, 22050, 32000, 44100, 48000
all of them 16-bit depth and mono (1 Channel), feel free to add 2-Channel support.
Go to "AudioHandler.cs" in client and change this line:
var waveFormat = new WaveFormat(44100, command.Channels);
To
var waveFormat = new WaveFormat(command.rate,16,1);
NAudio Cleaned / Mirror

Wow thanks for the Amazing feedback☺ Thanks for the size reducing and code clean up👍. I was worried because of the size! I will asap fork and add your Changes to my Repo.

You are welcome. 😄
Want to remind you to make these changes on a NEW fork not the same one.
(you can delete your existent fork and re-fork again)

oh thanks for the info. im currently reforking :) and adding your changes :)

Ok fixed everything youve said :) Works like charm :) thanks again for the size reducing ! Should be available at my fork now.

First, I want to thank you for your efforts. But unfortunately you didn't get my point of adding the changes to NEW fork.
I meant that you don't add the old changes to a commit again but just push all the new work in one commit to original code from this repo. I can guess that you just don't know how to do this but I think it can be done by downloading Quasar master branch again and work on it INSTEAD of working on the copy on your PC.
Another time you have changed the client settings ( IP:port) 😛
I've tested it with another simple rates (22kHz, 16kHz) but it seams to be not working as expected, I will look into this.

Do you have skype ? or some kind of chat app? i would like to speak to you?

Only using Wire.

ok add me<EMAIL_ADDRESS>

Hi !
I have tried you Quasar version. I have installed it on a VPS and I cannot use the mic recording function...
See my error :
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
xServer.Core.NAudio.Wave.MmeInterop.MmException: BadDeviceId calling waveOutOpen
at xServer.Core.NAudio.Wave.WaveOutputs.WaveOut.Init(IWaveProvider waveProvider)
at xServer.Forms.FrmMicrophone.InitializeNAudio()
at xServer.Forms.FrmMicrophone..ctor(Client c)
at xServer.Forms.FrmMain.remoteMicrophoneToolStripMenuItem_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
Have you any idea?

Ive tested the Remote mic on 50+ windows Machines but i didnt test on a VPS.
xServer.Core.NAudio.Wave.MmeInterop.MmException: BadDeviceId calling waveOutOpen
The device that you are trying to listen to doesnt work or seems corrupt. Never had this exception before.

ValonK,
How is it possible to use your version of the Client and Server?
Can you share it as a zip file ?
Thank you in advance.

go to my github profile and download the fork of qasar.
https://github.com/ValonK/QuasarRAT

ValonK,
Thank you for your advice. However, I am using Visual Studio 2015 and run the project. I managed to build, but unable to see hosts although when using the stable release <IP_ADDRESS>, i see them immidiatelly.
Can you advise what is the problem ? Do i need to upload a new server, built with your fork or ?
Thank you in advance.

Hmm i only added Remote Mic and nothing else so i dont understand why you get connection issues?
ive got only positive Response from people.
Download my fork and Rebuild. I cant see what setup your using so helping you would be difficult.

You have one bug as I remember just check Wire, @ValonK . T
he WaveOut MUST be the same as WaveIn on remote PC so you have to change WaveFormat to the selected one from Combobox for both WaveIn & WaveOut.

@DragonzMaster thanks for the Information.
I will continue to fix and make improvements friday starting. Vacation Time :)

ValonK I have an old version of Quasar how to install this thing?
Explain step by step, thank you very much
I tried, but as option did not work and the client disappeared

It's possible download a build of quasar with microphone feature ?

Of course it's on my page

I'm new in github. I tried to fork your project, but the download is only the source-code.

With the source code build it in visual studio. I will try to build it when I have time

I also get this exception on VPS.
xServer.Core.NAudio.Wave.MmeInterop.MmException: BadDeviceId calling waveOutOpen

do you have audio on your VPS?

Valonk could you upload the version Quasar RAT with remote microphone? I'm in a lot of need and your repository does not exist anymore.

@ValonK “Hold to” Test null and void ！

Valonk please! Can you upload Quasar RAT with microphone! I'm in a lot of need. Your repository does not exist anymore!!!

Hello, Sorry a little late but does anyone still need Quasar with microphone?

yes

https://github.com/quasar/QuasarRAT/tree/b2c6aabcabf8bc24929d2b05393d24f236d94659

although it is a bit buggy, but works


store: Add LRU caching for posting offset / adaptive postingOffsetInMemSampling based on traffic

After we fixed postingOffset sampling which was broken (we were keeping in memory all of them, instead of 1/32 as we intended), some of the users see extreme improvement:

This means that the about of postings is extreme in some setups, so what we keep in memory in terms of posting offsets really matters. This means we might need some caching for posting offsets as well. While we store them on disk, still disk lookup might be slower than in memory. I doubt there would be a benefit to storing this in remote cache though.
cc @d-ulyanov @mkabischev

This needs like some very advanced logic, which is not needed, yet. Closing for now.


[CDN] index.yaml cache is too much

Helm Version:
version.BuildInfo{Version:"v3.7.1", GitCommit:"1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4", GitTreeState:"clean", GoVersion:"go1.17.2"}
Describe the bug:
helm dependency build is not getting latest Helm chart versions.
Steps to reproduce:
 curl https://helm.elastic.co/index.yaml -sL | grep "elasticsearch-7.1"
 ==> where is 7.16.1 ?

 curl https://helm.elastic.co/index.yaml\?toto -sL | grep "elasticsearch-7.1"
    - https://helm.elastic.co/helm/elasticsearch/elasticsearch-7.16.1.tgz

(ho , this is working now ! maybe I have just refreshed the cache by doing this ?)

Hi @ebuildy, thanks for reporting this, we have added a flush CDN cache step in our internal release procedure.


CI/CD pipeline completed with debug log level

I need to change the config.yml to check for the Console Appenders log level, ensuring it is INFO, and failing the pipeline otherwise.

run:
name: Check Log4j console appender level
command: |
if [ "$(grep -c 'consoleAppender.threshold=INFO' log4j.properties)" -eq 0 ]; then
echo "Log4j console appender level is not set to INFO"
exit 1
fi

Or something like this

https://github.com/Loafabreadly/F1Discord-Bot/pull/7


Replace all remaining render_live calls with render_surface

Replace all render_live calls with the new render_surface macro
Check if other functions in test_helper.exs are still necessary
Clean up test_helper.exs

Done in 2286f8b6130679f60fd5ece18251d3f84a1dd830.


Adding multiple MapboxLayers at different heights

Hi there,
I'm trying to use the Mapbox/DeckGL interleaving feature to add multiple layers (at the moment two) in a Mapbox Map.
I have a DeckGL GeoJSON layer and a Scatterplot layer and I'm trying to insert them at different points in the Mapbox map. Specifically, I'd like for the GeoJSON layer to be rendered under the labels and the Scatterplot layer on top of everything.
This is what I return in my render function:
  return (
      <DeckGL
        debug={false}
        ref={(ref: any) => {
          this.deck = ref && ref.deck;
        }}
        layers={layers}
        initialViewState={viewport}
        controller={true}
        onWebGLInitialized={this.onWebGLInitialized}>
        {gl && (
          <MapGL
            ref={ref => {
              this.map = ref && ref.getMap();
            }}
            gl={gl}
            mapStyle={
              ui.isDarkTheme
                ? 'mapbox://styles/mapbox/dark-v9'
                : 'mapbox://styles/mapbox/light-v9'
            }
            mapboxApiAccessToken={MAPBOX_ACCESS_TOKEN}
            onLoad={this.onMapLoad}
            width="100%"
            height="100%"
          />
        )}
      </DeckGL>
    );

onMapLoad()
  onMapLoad = () => {
    // Finding the symbolLayerID is on-par with the examples provided
    map.addLayer(new MapboxLayer({ id: 'polygon-layer', deck }), symbolLayerID);
    map.addLayer(new MapboxLayer({ id: 'schools-layer', deck }));
}

With onMapLoad() just like above, both DeckGL layers just render on top of everything.
If I pass the before parameter to both addLayer calls, then they both render as expected, before the symbolLayerID layer.
However, I want the Scatterplot layer (schools-layer) to render on top of the labels.
I'm pretty sure I can just render a second DeckGL component just for the schools layer and sync the view between them so they pan together and everything, but it seems to me like I should be able to avoid doing that.
What am I doing wrong?

What deck.gl and react-map-gl versions are you using?

"deck.gl": "^6.3.2",
"react-map-gl": "^4.0.5",

Hey @Pessimistress,
I upgraded deck.gl and react-map-gl to their latest versions and this works. Awesome!
Thank you! I'll just go ahead and close this for now, there don't seem to be any issues.

Hey @Pessimistress ,
Sorry, I have to reopen this since I'm struggling with some issues and I'm not sure why.
With the code just like above, and with updated versions of  deck.gl and react-map-gl:

The map is not interactive (I cannot pan/zoom, etc)
The GeoJSON layer renders on top of the Scatterplot, and although it's not filled, it covers it (see image below)
Although the Scatterplot is being masked by the GeoJSON layer, picking still works (there should be a red dot below the hovercard chevron in the second image below)

If I don't pass the map as a child of DeckGL, then I get the interactivity back (I can move the map, zoom in, and so on).  Here's the updated code snippet.
    return (
      <>
        <DeckGL
          debug={false}
          ref={(ref: any) => {
            this.deck = ref && ref.deck;
          }}
          layers={layers}
          initialViewState={viewport}
          controller={true}
          onWebGLInitialized={this.onWebGLInitialized}>
        </DeckGL>
        {gl && (
          <MapGL
            {...viewport}
            onViewportChange={this.props.updateViewportFromView}
            ref={ref => {
              this.map = ref && ref.getMap();
            }}
            gl={gl}
            mapStyle={
              ui.isDarkTheme
                ? 'mapbox://styles/mapbox/dark-v9'
                : 'mapbox://styles/claudiuc/cjv3yyroa1pgh1fof28ri62ut'
            }
            mapboxApiAccessToken={MAPBOX_ACCESS_TOKEN}
            onLoad={this.onMapLoad}
            width="100%"
            height="100%"
          />
        )}
      </>
    );

However, the issues with the scatterplot layer rendering remain.
The only way to make the scatterplot layer as a mapbox layer render correctly is by removing map.addLayer(new MapboxLayer({ id: 'schools-layer', deck }));.
Then the map renders correctly and I can also interact with it, but picking doesn't work. If I make the map a child of DeckGL, then picking works as expected, but I cannot interact with the map.
I'm fairly certain this is a problem on my side, but I can't pinpoint where the problem is.
I would like to render two interleaved deck.gl layers, and have them both by pickable, as well as have an interactive map. Is there an example I can follow, or maybe you have some guidance for me?

Since you are using react map as a child of DeckGL, you want to import StaticMap instead of the default export, and just drop the onViewportChange prop. The interaction needs to be handled by the DeckGL component.

Thank you!
Any suggestions on debugging interaction here? I did as you suggested but I cannot pan/zoom the map at all now:
    <DeckGL
          debug={false}
          ref={(ref: any) => {
            this.deck = ref && ref.deck;
          }}
          layers={layers}
          initialViewState={viewport}
          controller={true}
          onWebGLInitialized={this.onWebGLInitialized}>
          {gl && (
            <StaticMap
              ref={ref => {
                this.map = ref && ref.getMap();
              }}
              gl={gl}
              mapStyle={
                ui.isDarkTheme
                  ? 'mapbox://styles/mapbox/dark-v9'
                  : 'mapbox://styles/claudiuc/cjv3yyroa1pgh1fof28ri62ut'
              }
              mapboxApiAccessToken={MAPBOX_ACCESS_TOKEN}
              onLoad={this.onMapLoad}
              width="100%"
              height="100%"
            />
          )}
      </DeckGL>

Hard to say without seeing the rest of your set up. You can try compare your app with the basic example: https://github.com/uber/deck.gl/blob/master/examples/get-started/react/mapbox/app.js

Hey,
I figured it out. The basic example is fine, I've used deck.gl like that before, with no issues at all.
The problem was with interleaving deck.gl layers with the base map.
 map.addLayer(new MapboxLayer({ id: 'polygon-layer', deck }), 'building');
 // map.addLayer(new MapboxLayer({ id: 'schools-layer', deck }));

I was only adding the first layer, and not the second, to the base map, which was causing problems.
I think that StaticMap could detect if all of the layers from the deck have been added to the base map or not and maybe issue an warning in that case?
Please let me know if you need more details - it works for me now and I get why it didn't before, but I think this error can be detected by StaticMap at runtime.


Carla cpp client - RPC

Hi ,
We would like to run a self-implemented client for connecting to the simulator server and receive sensory data from the simulator. The client will run on remote machine and will connect to CARLA via RPC calls.
As far as I understand from the examples:

The RPC server uses rpclib, which uses MsgPack for serialization (https://github.com/carla-simulator/rpclib , https://github.com/carla-simulator/carla/issues/555)
rpc of  LibCarla (LibCarla\source\carla\rpc)

what are the differences ?
what should we use?
Thank you.

@nsubiron @bernatx could you comment on this?

Hi,
CARLA uses the RPCLib library for all the RPC commands.
The RPC folder in LibCarla is just the serialization of all commands that CARLA uses. There, we use the RPCLib for the serialization of our commands with MsgPack.
So, there is only one RPC library to use.

Thanks a lot :)


Question: can this work with express?

I have some other routes (in express) and I want to also use fast-gateway .  Is this possible?  I saw where I can pass in options to fast-gateway for restana (opts.restana) and provide it a pre-existing server instance to use.
I'm doing something like this:
const app = express()
const server = http.createServer(app)

app.get('/route1', function(req, res) {
...
})

app.get('/route2', function(req, res) {
...
})

gateway({
  restana: {
    server: server
  },
  middlewares: [
    require('cors')(),
    require('helmet')()
  ],

  routes: [{
    prefix: '/gw-route1',
    target: 'http://another-host:8080'
  }, {
    prefix: '/gw-route2',
    target: 'http://another-host2:8080',
    middlewares: [
        passport.authenticate('jwt', { session: false })
    ]
  }]
}).start(PORT).then(server => {
  console.log(`API Gateway listening on port ${PORT}`)
})

My express routes are working.  The ones defined in fast-gateway are not.

Hi @clarktlaugh thanks for reaching out.
Although I would highly recommend to run your API gateway isolated from your services logic, here I describe the way you can get your solution working:
const app = express()
app.get('/route1', function(req, res) {
  ...
})
app.get('/route2', function(req, res) {
  ...
})

gateway({
  restana: {
    defaultRoute: (req, res) => app.handle(req, res)
  },
  ...

This will route to the express application all the un-matched requests on the gateway.
Thanks and Regards.

Thank you.  My intent was to add an admin API to my gateway service.  But, I should consider how to do it as a separate service.


[ISSUE #3918]RequestMapping, UrlMappingPattern can apply some optimizing

Fixes #3918.
Motivation
See "Enhancement Request" in issue.
Modifications
See "Describe the solution you'd like" in issue.
Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

please check checkstyle.

please check checkstyle.

It seems not my responsibility.

Yes, it has been fixed.


Cannot build app

I am unable to build a cargo app using this.
error:
glowsquid/apps/oxidize on  dev [!] is 📦 v0.1.0 via .NET v6.0.100 via 🦀 v1.57.0 took 3s
❯ yarn nx build oxidize
yarn run v1.22.15
$ D:\projects\glowsquid\node_modules\.bin\nx build oxidize
error: could not find `Cargo.toml` in `D:\projects\glowsquid` or any parent directory
Failed to process the project graph with "@nxrs/cargo". This will error in the future!
Run with NX_VERBOSE_LOGGING=true to see the error.

> nx run oxidize:build
> cargo build --bin oxidize
error: could not find `Cargo.toml` in `D:\projects\glowsquid` or any parent directory

———————————————————————————————————————————————

>  NX   ERROR  Running target "oxidize:build" failed

  Failed tasks:

  - oxidize:build

  Hint: run the command with --verbose for more details.

>  NX   CLOUD  See run details at https://nx.app/runs/sEGeeqGliP8

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

It seems that when running the path that cargo runs in isnt correct

Hey @Suyashtnt, would you be able to link me to the repo where you're seeing this issue? Or if it's not open source, if you could describe your project layout/directory structure and let me know what version of Nx you're using, I can start trying to narrow it down.

Actually — did you generate the oxidize app with nx generate @nxrs/cargo:app oxidize, or did you manually create it? The plugin creates a Cargo workspace at the root of your Nx workspace the first time you generate an app or library, and the executors assume the Cargo workspace already exists when they're doing their thing, so that might explain the problem. If that's the case, it should be a quick fix. (In the meantime, I'll go ahead and update the executors so they respond a little more gracefully when that happens.)

Hey @Suyashtnt, would you be able to link me to the repo where you're seeing this issue? Or if it's not open source, if you could describe your project layout/directory structure and let me know what version of Nx you're using, I can start trying to narrow it down.

The repo is glowsquid-launcher/glowsquid

Actually — did you generate the oxidize app with nx generate @nxrs/cargo:app oxidize, or did you manually create it? The plugin creates a Cargo workspace at the root of your Nx workspace the first time you generate an app or library, and the executors assume the Cargo workspace already exists when they're doing their thing, so that might explain the problem.
If that's the case, it should be a quick fix: Try running yarn nx generate @nxrs/cargo:init, and then adding "apps/oxidize" to the workspace.members array in the root-level Cargo.toml that gets generated.
In the meantime, I'll go ahead and update the executors so they respond a little more gracefully when that happens. I'm also now seeing that the app/lib generators fail if you don't have any existing Nx projects in the workspace, which is kind of a bummer — I'll look into that as well.

I'll try that

Hey @Suyashtnt, I actually just noticed you've got a Tauri config file in your oxidize project. I've done a little bit of playing around with Tauri, and I think it actually requires a fairly unique setup compared to what this plugin can do. I have another Nx project where I set up an ad-hoc builder for a Tauri app using @nrwl/workspace:run-commands — you may have better luck with a something like that. The Tauri project is under demos/tauri-app if you want to take a look.

Hey @Suyashtnt, I actually just noticed you've got a Tauri config file in your oxidize project. I've done a little bit of playing around with Tauri, and I think it actually requires a fairly unique setup compared to what this plugin can do. I have another Nx project where I set up an ad-hoc builder for a Tauri app using @nrwl/workspace:run-commands — you may have better luck with a something like that. The Tauri project is under demos/tauri-app if you want to take a look.

the setup is going to be much easier in the future but ill try using something similar to your demo, thanks


Issue #2881. Do not resolve dependencies which have already been reso…

Improves startup time by 100 times in verson 2.9.2. The problem was that dependencies were resolved multiple times for the same models.
The pull request does not target version 3.0.0, it is based on tag 2.9.2 and creates a new version 2.9.3-SNAPSHOT which is assumed to be released as 2.9.3.
Since there is no branch for 2.9.3 in this repository, I have indicated "master" as target but that should be a branch for 2.9.3 based on 2.9.2.
Version 3.0.0-SNAPHSOT creates another even worse bottleneck in springfox.documentation.spring.web.scanners.ApiModelReader#mergeModelBranch which
requres a separate fix.

Good day, we have noticed that this would be really useful for our project and would like to assist with review\merge process. Is there any guideline on what is left to do? would it help if we resolve conflicts and create a new PR based on this one?

Hello,
we've the same problem in one of our projects, so it would be great if the pullrequest could be merged. The problem gets larger the more subclasses of an abstract class exists. Since we have a tranferApi which uses some meta attributes and the content is a generic parameter we have > 10 subclasses of the Abstract DTO and the application currently doesn't start within exeptable time. short example of the recursive structure:
`@ApiModel(subTypes = {
ConcreteDTO1.class,
ConcreteDTO2.class,
ConcreteDTO3.class,
}, discriminator = "disc")
public abstract class AbstractDTO {
String disc;
int version;
T content;
@JsonProperty("objects")
@ApiModelProperty(dataType = "List[AbstractDTO]")
private List<AbstractDTO<?>> objects;

}`

@agarg-ontic, could you create a branch in Git based on tag  2.9.2 ? Then I will edit this pull request and set the new branch as destination. This path addresses long initialization in version 2.9.2 and creates a new Maven version 2.9.3.
Since then codebase has changed and addressing this issue in version 3.0.0 requires a separate fix.


wandb: ERROR api_key not configured (no-tty). call wandb.login(key=[your_api_key])

为什么需要登录这个呀？
[INFO|trainer.py:1715] 2023-11-03 15:37:36,125 >> ***** Running training *****
[INFO|trainer.py:1716] 2023-11-03 15:37:36,125 >>   Num examples = 28,483
[INFO|trainer.py:1717] 2023-11-03 15:37:36,125 >>   Num Epochs = 3
[INFO|trainer.py:1718] 2023-11-03 15:37:36,125 >>   Instantaneous batch size per device = 4
[INFO|trainer.py:1721] 2023-11-03 15:37:36,125 >>   Total train batch size (w. parallel, distributed & accumulation) = 128
[INFO|trainer.py:1722] 2023-11-03 15:37:36,125 >>   Gradient Accumulation steps = 4
[INFO|trainer.py:1723] 2023-11-03 15:37:36,125 >>   Total optimization steps = 666
[INFO|trainer.py:1724] 2023-11-03 15:37:36,126 >>   Number of trainable parameters = 6,243,584,000
[INFO|integration_utils.py:716] 2023-11-03 15:37:36,161 >> Automatic Weights & Biases logging enabled, to disable set os.environ["WANDB_DISABLED"] = "true"
wandb: ERROR api_key not configured (no-tty). call wandb.login(key=[your_api_key])
Traceback (most recent call last):
  File "/mnt/pfs-guan-ssai/nlu/data/tianxy/LLaMA-Factory/src/train_bash.py", line 14, in <module>
    main()
  File "/mnt/pfs-guan-ssai/nlu/data/tianxy/LLaMA-Factory/src/train_bash.py", line 5, in main
    run_exp()
  File "/mnt/pfs-guan-ssai/nlu/data/tianxy/LLaMA-Factory/src/llmtuner/tuner/tune.py", line 26, in run_exp
    run_sft(model_args, data_args, training_args, finetuning_args, generating_args, callbacks)
  File "/mnt/pfs-guan-ssai/nlu/data/tianxy/LLaMA-Factory/src/llmtuner/tuner/sft/workflow.py", line 67, in run_sft
    train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
  File "/opt/conda/lib/python3.10/site-packages/transformers/trainer.py", line 1556, in train
    return inner_training_loop(
  File "/opt/conda/lib/python3.10/site-packages/transformers/trainer.py", line 1781, in _inner_training_loop
    self.control = self.callback_handler.on_train_begin(args, self.state, self.control)
  File "/opt/conda/lib/python3.10/site-packages/transformers/trainer_callback.py", line 362, in on_train_begin
    return self.call_event("on_train_begin", args, state, control)
  File "/opt/conda/lib/python3.10/site-packages/transformers/trainer_callback.py", line 406, in call_event
    result = getattr(callback, event)(
  File "/opt/conda/lib/python3.10/site-packages/transformers/integrations/integration_utils.py", line 760, in on_train_begin
    self.setup(args, state, model, **kwargs)
  File "/opt/conda/lib/python3.10/site-packages/transformers/integrations/integration_utils.py", line 734, in setup
    self._wandb.init(
  File "/opt/conda/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 1189, in init
    raise e
  File "/opt/conda/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 1166, in init
    wi.setup(kwargs)
  File "/opt/conda/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 308, in setup
    wandb_login._login(
  File "/opt/conda/lib/python3.10/site-packages/wandb/sdk/wandb_login.py", line 298, in _login
    wlogin.prompt_api_key()
  File "/opt/conda/lib/python3.10/site-packages/wandb/sdk/wandb_login.py", line 228, in prompt_api_key
    raise UsageError("api_key not configured (no-tty). call " + directive)

已经解决

fix this by: pip uninstall wandb


cw3-flex-multisig: write cw20 multi-contract mint test

Hi,
Can you add some context / description?
Also, this mentions flex in the title and branch, but the changes are in the cw3-fixed-multisig contract.

@maurolacy You are right about the naming, I got distracted when creating the PR. I will fix the commit when squashing the commits.

@orkunkl Can you polish this off so we can merge. I want to do a big cosmwasm-plus upgrade to v0.14.0 soon, and this should be in master first. (Well, I don't really want to do the upgrade but need it done so I can write some contracts for hackatom ru... any volunteers to bump cosmwasm?)

Hmm... I'll just merge this in cuz Mauro started the upgrade. But please feel free to polish it off later.


Error importing psutl

import psutil
.nimble/pkgs/psutil.nim(64,38) Error: type mismatch: got <int> but expected 'cint = int32
OS is: Osx 10.14
64 bit
nim version: 1.4 (stable)
I been using sysinfo and would really like to use psutil for grabbing networking stats
Thanks
-Nixfreak

I can take a look in a few weeks, around the holiday. Sorry, I don't have the Mac infrastructure at this point to make it easy to test.

fixed in https://github.com/juancarlospaco/psutil-nim/pull/24


Override SourceQueue.offer to accept Tags

Adds the ability for a user to specify additional tags to be attached to queue metrics

The items that I'm enqueuing are coming from a number of different sources, each of which reports at a different rate (in this case, each source is an Alert object). It would be helpful to add the name of the source as a dimension to the queue metrics so that when there is a big jump in say enqueued, we can see where that jump came from. I can add a separate custom metric to get this same information, but as I was already leveraging these metrics (in a dashboard) I figured it would be reasonable to add this functionality. But I agree that this could lead to perf issues in certain cases so feel free to reject this change.

Thanks for the use-case description. Given there is an easy work around will close for now to reduce performance risk here.


Version 3

Version 3 has been released, with a lot of breaking changes so please be sure you can use it.
Version 3 (latest):
yarn add [-D] @jorgebodega/typeorm-seeding

Version 2 (previous):
yarn add [-D] @jorgebodega/typeorm-seeding@2

Bundle size has been decreased a lot:
345kB vs 3.5kB

Hi there, I haven't had the time to test latest version yet. Again, thanks for the energy you're putting in this library, I really appreciate it. I'm more confortable with the latest choices you made in this release with the use of class MyModelFactory extends Factory<MyModel>, it's closer to what I've been used to in factory boy (python implementation)
In the newest README, I did not see any mention of "context". It was a neat way to give extra info to the factory to get specific outcomes from it. I did not see the code in details yet but 2 possibilities :

you removed this feature (if so, do you plan to put it back ? Do you need help doing so ? Or do you think it was a bad idea to begin with?)
you forgot to add it in the doc (if so, do you need help to write it ?)

Cheers !
Bundle size is smaller... but faker is no more included, so the library does """less""".
Maybe we could start documentation or examples with:

fakerjs from the community edition obviously
chance
etc...

I'd be happy to help or submit PR if you provide some guidance over your plans for this library.

Hi!
Yes, I removed that feature, I see there is no need to have it since there are some other ways to override values and there could be more than one factory per entity. If you think it should be there, please explain your point, will be great to read it.
And yes, I removed faker as a dependency, because there is no need to have it, this library could be used even if is not installed. But of course, I have plans to add some extense examples with TypeORM entities, factories, seeders, faker... in the next weeks.
In this moment, I don't have any more plans, just see if some more people could bring some feedback like yours

For now, I'm not using the seed part, only the factories. I discovered this project 2 weeks ago...  But I was not expecting so much of a hassle haha (the fork, fakerjs being removed from the author and v3 release...)
It's quite unstable right now :/
I can't find any good example where the "context" I was using cannot be replaced with several Factories... But requiring a lot of factories could be a pain.
Let say we have a model A with field a1, a2, b3, b4, a11, a12, a21, a22, b31, b32, b41, b42
This model is made so that if you have a value in a1, a2 would be null and if you got a value for a2, a1 is null
If a1 has a value, you get value for a21 and a22 etc etc
Same kind of rules applies for b3 and b4.
With an object passed to the factory, you could give something like { a: 1, b: 4 }
and the factory will be able to make an object with a value in a1 but not a2, a value in b4 but not b3 and the related a11, a12, b41, b42.
The point is: if we try to create as many factories as composition we could get, it's getting out of hands. With this example, we would need 4 factories.
We could argue that one can have a few factories and then correct them with the fields being overridden when needed.
Or we could say that this "A" model is absurd and probably badly designed. 😂  I tried to come with an example but I'm not sure I'm proving a point here...
I had a second look to the README, I think an example of a factory being called within another factory is a must have to demonstrate what this lib can achieved even if it can seem obvious.
I'll give a try to this version tomorrow, I'll let you know if I encounter any problems or if I have any proposal to make.

Ok, I'll wait then.
I used the original library every day at work, but is unmaintained, and I cannot do anything because the owner does not give me the token to deploy.
I will work on this since is core in my project, for testing and seeding

Hi there, some questions/suggestions for you:

Do we need to create new instances of factories every time before calling create, make etc ? I'm not sure what the benefits are.
Could we instead directly call UserFactory.create() or UserFactory.make() instead of new UserFactory().create() ? I feel the constructor is not adding much value but I may be plain wrong.

Feature suggestion: Add a sequence generator? (maybe via adding a counter on the factory class) Let's say you want all your instances of a model to have something like firstName = "John n°XX"where XX is an auto incremental integer. It could be neat.

We may have a performance gain if we rewrite createMany so that we take advantage of the async await part ? With a Promise.all() for example instead of waiting at each save before creating the next one ?

Last thing I'm thinking, let's say our factory calls a lot of subfactories and I decide to override values when calling the factory.
makeEntity will first use all the subfactories from the definition function and then (eventually) call again the same factories to override it. Maybe if fields are overriden, they should not be computed in the definition function in the first place.
If we really want to go further, we could imagine that a factory takes an Entity in its constructor or as a static field and makes some introspection on the entity class to automagically generate entity with the help of faker, chance, whatever. That's more what I'm looking for. At the end, if we only make use of factories where we create a new entity, define all the value "by hand" and eventually override some values, we create almost no value. If we're able to use typeorm entities correctly (and typing!!), we could get factories in no time, and only add specific faker functions where we want more fuzziness. What do you think?
What feels strange right now is that a Factory does not depend on the entity it is building (types set apart). It might lead to unexpected behavior and a bad developper experience. What are your thoughts on this?

Hi!

I don't think using static methods here could be a good idea. Is not possible to use abstract with static functions, and definition method could not be overrided. For me, that part of the application should stay like that. Also, it is possible to use like this test
For me, it makes no sense to have that type of functionality. I clearly prefer to maintain sequences and that type of stuff on TypeORM, this library does not pretend to override ORM functionality
Yes, this could be possible, but I strongly believe using concurrency here could led to some errors while creating big amount of stuff.

About the big paragraph, I do not understand very well, could you give an example?
And last but not least, I think factory typing is very good here, it is agnostic of entities and is client responsability to correctly check that entity is pointing the desired class

I read that library, seems great!
I'll still maintain this because I use it everyday and prefer the simplicity, but if you're not using seeding and prefer that library, would be great if you come back after some time and share your opinions!

Obviously, my plan is not to make you use another library. Yours is great too and I'd be happy to help if you need. typeorm-factory is closer to my needs but it has some flaws. I'm gonna try it today and if it's not up to my needs, I'll write some PRs or my own version unless I find another flavor of this factory implementation 🤷🏻  I'll let you know !

I ended up writing my own. I plan to extend it to be typeorm agnostic and also work with other ORM I use. This is a WIP but you can have a look if you want (a lot more work is needed), I still need to battle test it in real production envs. I'm working on it this week. Cheers ! (and congrats on the latest release)


Word Embeddings with Lucene

Loading pre-trained word2vec models is extremely slow with Deeplearning4j. We'll be using a Lucene index instead, with a word as the index and the embedding as the corresponding document.

Initial implementation completed.