julienvincent

julienvincent

Spaces > Tabs 🙃

Member Since 7 years ago

@journeyapps , London

Experience Points
23
follower
Lessons Completed
1
follow
Lessons Completed
234
stars
Best Reply Awards
63
repos

3631 contributions in the last year

Pinned
⚡ A suite of TypeScript Codecs. Data Encoding/Decoding. Type inference. Schema generation
⚡ Generate GraphQL queries from models that can be mocked and normalized.
⚡ A utility for repathing normalized data via JavaScript getters
Activity
May
17
1 day ago
started
started time in 14 hours ago
Apr
29
2 weeks ago
push

julienvincent push julienvincent/dotfiles

julienvincent
julienvincent

Rewrite cached-authenticator in rust

commit sha: b92118270bbda34ec4e8df6e5d1eea50f4d320ac

push time in 2 weeks ago
Apr
24
3 weeks ago
Activity icon
published release 0.0.4

julienvincent in dsyncapp/dsync create published release 0.0.4

createdAt 3 weeks ago
Activity icon
created tag
createdAt 3 weeks ago
push

julienvincent push dsyncapp/dsync

julienvincent
julienvincent

feature: improved seeking and drift detection

julienvincent
julienvincent

feature: added checkpointing to work around 5m time extension limit

julienvincent
julienvincent

commit sha: 0a264ceb18c7cebac1b024ddd42183904d6698cc

push time in 3 weeks ago
Apr
15
1 month ago
pull request

julienvincent pull request ohmyzsh/ohmyzsh

julienvincent
julienvincent

Added vars for setting vi-mode cursor styles

Standards checklist:

  • The PR title is descriptive.
  • The PR doesn't replicate another PR which is already open. - not that I could see
  • I have read the contribution guide and followed all the instructions.
  • The code follows the code style guide detailed in the wiki.
  • The code is mine or it's from somewhere with an MIT-compatible license.
  • The code is efficient, to the best of my ability, and does not waste computer resources.
  • The code is stable and I have tested it myself, to the best of my abilities.

Changes:

Added the following vi-mode variables which can be used to control the cursor style depending on the vi mode currently active.

  • VI_MODE_CURSOR_NORMAL
  • VI_MODE_CURSOR_VISUAL
  • VI_MODE_CURSOR_INSERT
  • VI_MODE_CURSOR_OPPEND

These default to the values used prior to this change and only apply if the existing variable VI_MODE_SET_CURSOR=true.

I have added this functionality after copy-pasting the vi-mode plugin to my custom dir and changing the default cursor styles. I really like a cursor indicator to help me keep track of what mode I am in, but I much prefer the underline when in insert mode.

push

julienvincent push julienvincent/ohmyzsh

julienvincent
julienvincent

feat(vi-mode): added vars for controlling cursor styles

Added the following vi-mode variables which can be used to control the cursor style depending on the currently active mode.

  • VI_MODE_CURSOR_NORMAL=2
  • VI_MODE_CURSOR_VISUAL=6
  • VI_MODE_CURSOR_INSERT=6
  • VI_MODE_CURSOR_OPPEND=0

These default to the values used prior to this change and only apply if the existing variable VI_MODE_SET_CURSOR=true.

commit sha: 0ffcfadcffa4bfad98fddbdce55dd78bfd16ae8a

push time in 1 month ago
push

julienvincent push julienvincent/ohmyzsh

julienvincent
julienvincent

feat(vi-mode): added vars for controlling cursor styles

Added the following vi-mode the variables which can be used to control the cursor style depending on the vi mode currently active.

  • VI_MODE_CURSOR_NORMAL=2
  • VI_MODE_CURSOR_VISUAL=6
  • VI_MODE_CURSOR_INSERT=6
  • VI_MODE_CURSOR_OPPEND=0

These default to the values used prior to this change and only apply if the existing VI_MODE_SET_CURSOR variable is set to true.

commit sha: 5ccace207a944c0ad6a1585ed548c8220b2fc380

push time in 1 month ago
Activity icon
created branch

julienvincent in julienvincent/ohmyzsh create branch feature/vi-mode-cursors

createdAt 1 month ago
Activity icon
fork

julienvincent forked ohmyzsh/ohmyzsh

⚡ 🙃 A delightful community-driven (with 2,000+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
julienvincent MIT License Updated
fork time in 1 month ago
Apr
13
1 month ago
Mar
17
2 months ago
pull request

julienvincent merge to journeyapps-platform/delete-old-packages

julienvincent
julienvincent

[Fix] Delete package query

Simply changing to !ID did not solve the type issue:

UnhandledPromiseRejectionWarning: GraphqlError: Type mismatch on variable $package_id and argument packageVersionId (String! / ID!)

See failed run

We are POST'ing to the endpoint itself, which might get rate-limited

Tested on in runtime-components using 1.0.3-dev1 See run

pull request

julienvincent merge to journeyapps-platform/delete-old-packages

julienvincent
julienvincent

[Fix] Delete package query

Simply changing to !ID did not solve the type issue:

UnhandledPromiseRejectionWarning: GraphqlError: Type mismatch on variable $package_id and argument packageVersionId (String! / ID!)

See failed run

We are POST'ing to the endpoint itself, which might get rate-limited

Tested on in runtime-components using 1.0.3-dev1 See run

pull request

julienvincent merge to journeyapps-platform/delete-old-packages

julienvincent
julienvincent

[Fix] Delete package query

Simply changing to !ID did not solve the type issue:

UnhandledPromiseRejectionWarning: GraphqlError: Type mismatch on variable $package_id and argument packageVersionId (String! / ID!)

See failed run

We are POST'ing to the endpoint itself, which might get rate-limited

Tested on in runtime-components using 1.0.3-dev1 See run

Mar
15
2 months ago
Activity icon
issue

julienvincent issue comment tulios/kafkajs

julienvincent
julienvincent

#683 Improve concurrency

Notable changes:

  • Removed current concurrency + barrier logic for batch processing
  • Created RunnerPool, which spawns partitionsConsumedConcurrently number of independent runners
  • Created FetchManager, which fetches different brokers independently and assigns partitions to different runners during the consumer group sync
  • Each connection now opens two sockets - one for fetch requests, the other one for the rest (TCP sockets preserve the order of messages sent to a broker. That means that other concurrent requests, eg. heartbeats and offset fetch/commit, from other runners would wait behind the fetch polls and drastically slows down the consumption in the concurrent scenario)
  • Removed memory leaks from hanging consumers in tests

Manually compared consumption times with the scripts below:

Producer:

const { Kafka } = require('kafkajs');

const kafka = new Kafka({ brokers: ['localhost:9092'] });

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

(async () => {
    // const admin = kafka.admin();
    // await admin.connect()
    // await admin.deleteTopics({ topics: ['loadtest'] })
    // await admin.createTopics({ topics: [{ topic: 'loadtest', numPartitions: 3, replicationFactor: 1 }]})
    // await admin.disconnect()

    const producer = kafka.producer();
    await producer.connect();

    const batchSize = 100;
    for (let i = 0; i < 5; i++) {
        const messages = Array(batchSize)
            .fill()
            .map((_, index) => ({
                key: `key-${batchSize * i + index}`,
                value: `value-${batchSize * i + index}`,
            }));
        await producer.send({ topic: 'loadtest', messages });
        await sleep(1000);
    }
    await producer.disconnect();

    console.log('Published!');
})();

Consumer:

const { Kafka } = require('kafkajs');

const kafka = new Kafka({ brokers: ['localhost:9092'] });

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

(async () => {
    const metrics = {};

    const consumer = kafka.consumer({ groupId: 'tulios-consumer', maxWaitTimeInMs: 5000 });
    await consumer.connect();

    process.on('SIGINT', () => {
        Object.entries(metrics).forEach(([partition, { startTime, endTime }]) => {
            console.log(`Partition ${partition} processed in ${endTime - startTime} ms`)
        })
        return consumer.disconnect()
    });

    await consumer.subscribe({ topic: 'loadtest' });
    await consumer.run({
        partitionsConsumedConcurrently: 3,
        eachMessage: async ({ partition, message: { value } }) => {
            if (!metrics[partition]) metrics[partition] = { startTime: Date.now() }

            if (partition === 0) await sleep(100)
            console.log(partition, value.toString());

            metrics[partition].endTime = Date.now()
        },
    });
})();

Slower runners now consume their batches at their own pace, other fetch requests will not be blocked. Partitions 2 and 3 were consumed in ~70ms (- 4s from delays) compared to the current master version, which took ~9s (-4s delays):

image-20211217-152719

julienvincent
julienvincent

We have not seen any out-of-the-ordinary issues with our deployments running this code, and performance + latency has been very good - as expected!

Mar
14
2 months ago
push

julienvincent push julienvincent/ts-codec

julienvincent
julienvincent

fix: throw error if unsupported codec is given to omit

julienvincent
julienvincent

fix: merge object-schemas before union product during intersection

julienvincent
julienvincent

commit sha: 98b8cbb67285ad41bf67eb2c371752d9e38ab6ee

push time in 2 months ago
Activity icon
created tag
createdAt 2 months ago
Mar
13
2 months ago
Activity icon
published release 0.0.3

julienvincent in dsyncapp/dsync create published release 0.0.3

createdAt 2 months ago
Activity icon
created tag
createdAt 2 months ago
Activity icon
delete
deleted time in 2 months ago
push

julienvincent push dsyncapp/dsync

julienvincent
julienvincent

chore: commit initial version of env.js

julienvincent
julienvincent

commit sha: d9ba227301a12661010357d99360e1e9d866e9bb

push time in 2 months ago
push

julienvincent push dsyncapp/dsync

julienvincent
julienvincent

commit sha: 18964fbc0704c2f80eedc5eb65332975d07d003e

push time in 2 months ago
Activity icon
published release 0.0.3

julienvincent in dsyncapp/dsync create published release 0.0.3

createdAt 2 months ago
Activity icon
created tag
createdAt 2 months ago
push

julienvincent push dsyncapp/dsync

julienvincent
julienvincent

fix: don't timout disconnected clients

julienvincent
julienvincent

feature: added peer garbage collection

julienvincent
julienvincent

chore: pass decoded room infor to selector

julienvincent
julienvincent

chore: added prettier precommit hook

julienvincent
julienvincent

refactor: removed nextjs and use esbuild directly

julienvincent
julienvincent

feature: stabilized script injection and state management

julienvincent
julienvincent

fix: double pausing on room state change

julienvincent
julienvincent
julienvincent
julienvincent
julienvincent
julienvincent

ci: configured extension release

julienvincent
julienvincent

feature: configured dynamic endpoint loading for extension

commit sha: 1e38d79fce9796cd4c95be7648a1ef291ae9e9ee

push time in 2 months ago
started
started time in 2 months ago
Previous