profile
viewpoint
Tyson Mote tysonmote @segmentio Portland, OR There's levels to it you and I know.

tysonmote/gommap 49

Git mirror of launchpad.net/gommap with additional patches.

tysonmote/expornote 4

Export Evernote .enex files to raw attachments and Markdown

tysonmote/jog 2

Simple command-line tool for logging what you've been working on.

tysonmote/bitrate_forcer 1

Force upconvert MP3s to get iTunes Match to match them.

tysonmote/cf-exception-notifier-js 1

JavaScript stacktraces delivered hot and fresh to your door.

tysonmote/cml-tmbundle 1

CML TextMate bundle

tysonmote/cocoafish-ruby 1

Cocoafish Ruby API

tysonmote/CoffeeScript-Jasmine.tmbundle 1

Snippets and extra highlighting for writing Jasmine tests with CoffeeScript

tysonmote/coffeeshop 1

Sinatra app to quickly serve up CoffeeScript as JavaScript

fork tysonmote/github-markdown-toc

Easy TOC creation for GitHub README.md

fork in 7 days

push eventtysonmote/gommap

Charlie Root

commit sha e5cd19c00ae44257a12de01fd67e3d8d1dd60552

Add freebsd support

view details

Tyson Mote

commit sha 6edfc905bae0c95adc30b7c90122f426f1d1951b

Merge pull request #4 from dmitryluhtionov/master Add freebsd support

view details

push time in 9 days

PR merged tysonmote/gommap

Add freebsd support
+8 -0

1 comment

1 changed file

dmitryluhtionov

pr closed time in 9 days

pull request commenttysonmote/gommap

Add freebsd support

Thanks!

dmitryluhtionov

comment created time in 9 days

push eventtysonmote/dotfiles

Tyson Mote

commit sha c9e63c82c7a6c9944940e5f429958767eb0a6c48

zsh: Add gh tab completion

view details

Tyson Mote

commit sha 49b9f214daae184099d92424062b1e088896c595

vim: Disable endwise

view details

Tyson Mote

commit sha bcb7edd68c2309e646e425f48742d4f1a9b419cd

vim: Run goimports

view details

push time in 20 days

delete branch segmentio/redis-clustr

delete branch : fix-unhealthy-connect

delete time in a month

push eventsegmentio/redis-clustr

Tyson Mote

commit sha 32c0ef45b4d71c20d53d268b1eecb85c950af427

Remove reference to unused variable

view details

Tyson Mote

commit sha be31385b83f83dc3e1b16988912dd52ea5a4c9ce

Refactor out slot map building

view details

Tyson Mote

commit sha aa3b5ec0df4ff688e5d304f09f4a05b1ef179a8b

Wait for cluster to reach ok state

view details

Tyson Mote

commit sha 900a42624d80ad4fafed7fb14c7cefaf41f7a24b

Refactor out 'fullReady' waiting

view details

Tyson Mote

commit sha 282f2c716af8c25cd3d7391e1e9d1307e6f55c02

Fix callback errors even after cluster reaches 'ok' state This fixes a bug where connecting to a cluster not yet in the 'ok' state would cause all commands to fail even when the cluster reaches the 'ok' state.

view details

Tyson Mote

commit sha 36a00628ba32df8968c919bd814ee93539196a03

Merge pull request #1 from segmentio/fix-unhealthy-connect Improve error handling after connect

view details

push time in a month

PR merged segmentio/redis-clustr

Improve error handling after connect

This PR fixes two issues:

  • If RedisClustr connects when the cluster is not yet in the 'ok' state, it would continue to return "couldn't get slot allocation" errors even after the cluster reached the 'ok' state.

  • If RedisClustr fails to connect before the 'wait' timeout, it would continue to return "couldn't get slot allocation" errors even after the cluster became reachable.

+76 -43

0 comment

1 changed file

tysonmote

pr closed time in a month

PR opened segmentio/redis-clustr

Improve error handling after connect

This PR fixes two issues:

  • If RedisClustr connects when the cluster is not yet in the 'ok' state, it would continue to return "couldn't get slot allocation" errors even after the cluster reached the 'ok' state.

  • If RedisClustr fails to connect before the 'wait' timeout, it would continue to return "couldn't get slot allocation" errors even after the cluster became reachable.

+76 -43

0 comment

1 changed file

pr created time in a month

push eventsegmentio/redis-clustr

Tyson Mote

commit sha be31385b83f83dc3e1b16988912dd52ea5a4c9ce

Refactor out slot map building

view details

Tyson Mote

commit sha aa3b5ec0df4ff688e5d304f09f4a05b1ef179a8b

Wait for cluster to reach ok state

view details

Tyson Mote

commit sha 900a42624d80ad4fafed7fb14c7cefaf41f7a24b

Refactor out 'fullReady' waiting

view details

Tyson Mote

commit sha 282f2c716af8c25cd3d7391e1e9d1307e6f55c02

Fix callback errors even after cluster reaches 'ok' state This fixes a bug where connecting to a cluster not yet in the 'ok' state would cause all commands to fail even when the cluster reaches the 'ok' state.

view details

push time in a month

create barnchsegmentio/redis-clustr

branch : fix-unhealthy-connect

created branch time in a month

issue openedgosquared/redis-clustr

Requests fail when slaves = 'never' and redis-clustr connects to slave first

If RedisClustr is configured to never send requests to slaves and it connects to a slave first, queued requests will fail with a couldn't get client error. This is easily reproducible with this test:

    it('queues requests', function(done) {
      var r = new RedisClustr({
        servers: hosts,
        slaves: 'never'
      });

      r.ping(function(e) {
        if (e) throw e
        else r.quit(done)
      })
    });

One solution here is to only drain the request queue when fullReady is hit. I've done that here in my branch: https://github.com/segmentio/redis-clustr/commit/246ad77b0fd0693ce3a7db468a393ec39b7bcd85

However, this has a few side-effects so I didn't just open this as a PR:

  1. getSlots() no longer blocks while the command queue is drained. I can't think of any reason why this would be a problem, though.

  2. Commands will be queued until all clients are ready, not just the first one. I believe this is desired behavior anyways because otherwise we're ignoring the maxQueueLength setting and just queueing commands in all the non-ready Redis clients.

If you're interested, I'd be happy to open a PR with my fix above if you want. Just let me know!

created time in a month

push eventsegmentio/redis-clustr

Tyson Mote

commit sha be3f9e44781bb874dc0547fcf97de1eea20b6559

Update README.md

view details

push time in a month

created tagsegmentio/redis-clustr

tagv1.8.1

Redis Cluster client for Node.js

created time in a month

push eventsegmentio/redis-clustr

Tyson Mote

commit sha 246ad77b0fd0693ce3a7db468a393ec39b7bcd85

Don't drain command queue prematurely If the client is configured to never send commands to slaves but it connects to a slave first, the queue will be prematurely drained, causing "couldn't get client" errors to be sent to all queued callbacks because getRandomConnection() will return null. This commit changes the behavior so that the queue is only drained on `fullReady`. I believe this is desired behavior, anyways, as opposed to draining the queue when one master is available because otherwise we're ignoring the maxQueueLength setting and pushing the queuing on to the `redis` client for all connections to masters that aren't ready yet. This has the side effect of not blocking getSlots() from returning while the queue is drained but I do not believe this is an issue in practice.

view details

Tyson Mote

commit sha bf32c378fbaaa2e75839c86fedde5fdf2596dc15

1.8.1

view details

push time in a month

push eventtysonmote/dotfiles

Tyson Mote

commit sha 3ea1f59b6539b2ba98fb5b8c174811ea0ac5984f

zsh: Remove old junk

view details

push time in 2 months

push eventtysonmote/dotfiles

Tyson Mote

commit sha 7075914582f6cfadad568ae870b7b966c0996e13

Custom zsh theme, cleanup

view details

push time in 2 months

push eventtysonmote/dotfiles

Tyson Mote

commit sha f3a20e8a915d7faa8d4e6e1247467179cb1f6b0d

vim: Clean up vim-go config

view details

push time in 2 months

push eventtysonmote/dotfiles

Tyson Mote

commit sha 7a42ed77109fcc51cf759a3b451fc8120d74c9ec

vim: Clean up linters / ALE

view details

push time in 2 months

push eventsegmentio/redis-clustr

Tyson Mote

commit sha 506c3a4f4dd0b56739229fa44a94af23452c7be8

Update README

view details

push time in 2 months

delete branch segmentio/integration

delete branch : ioredis

delete time in 2 months

created tagsegmentio/redis-clustr

tagv1.8.0

Redis Cluster client for Node.js

created time in 2 months

push eventsegmentio/redis-clustr

Tyson Mote

commit sha e71b1d1ded3f724835657502fbed08e23372a260

Fork

view details

Tyson Mote

commit sha 9fe5fd4b889a9270140415021b98cfd6df3e771c

Update dependencies

view details

Tyson Mote

commit sha 20668c46775601eff959588b0e672a4fdeeff9c2

1.8.0

view details

push time in 2 months

created tagsegmentio/integration

tagv7.2.0-beta.0

Segment server side integration base prototype

created time in 2 months

push eventsegmentio/integration

Tyson Mote

commit sha 45c9573e1fcb2ed18579d3c5711aa793c00125c3

7.2.0-beta.0

view details

push time in 2 months

push eventsegmentio/integration

Tyson Mote

commit sha 0562fbc913c595d4ab85123aece6668ac147d269

7.2.0.beta.0

view details

push time in 2 months

push eventsegmentio/integration

Tyson Mote

commit sha 6ab43ab50a49c3218f7b4dcf1f3772c85864003e

7.2.0

view details

push time in 2 months

push eventsegmentio/integration

Tyson Mote

commit sha 023f39e15954d4eaace3a6e1f50cf066c0f90d28

Switch from redis to ioredis

view details

push time in 2 months

PR opened segmentio/integration

Switch from redis to ioredis
+75 -45

0 comment

5 changed files

pr created time in 2 months

create barnchsegmentio/integration

branch : ioredis

created branch time in 2 months

startedsegmentio/topicctl

started time in 2 months

push eventsegmentio/analytics.js-integrations

nikhil

commit sha d6578b98ff9b28bd24472e3d06553f1b5fde75dc

refactor: Clean up the Optimizely integration * Don't attempt to interface with Optimizely Classic Web, since Classic is finally dead * Prepare to support Optimizely Edge, an alternative to Optimizely Web * Drop all references to customCampaignProperties. It seems to have been documented [here](https://segment.com/docs/connections/destinations/catalog/optimizely-web/#settings) but it couldn't possibly have worked. * Generally refactor the code and tests.

view details

nikhil

commit sha 3633ea50c1882da220bebb209b448faac2d67e97

Way more changes

view details

nikhil

commit sha d0b61c2291ad8f7bb2d8d73baec4a3a48a12e185

Finish fixing and refactoring tests

view details

nikhil

commit sha f69c184e59c82ec73a95da293d74c9b351ccc7c9

yarn add lodash --dev

view details

nikhil

commit sha 04c9df5daec7df75628bc43f067bd613daa3a6fc

Update HISTORY.md

view details

Tyson Mote

commit sha 380f024333567cb8a6c951e900c5346e0f84802c

Fix private registries in yarn.lock

view details

push time in 3 months

pull request commentsegmentio/analytics.js-integrations

refactor: Clean up the Optimizely integration

@nchilada It looks like this PR introduces some new lint warnings in our CI. Do you think you could fix these up? (Sorry that this isn't clear -- I'm not sure why our CircleCI setup isn't able to run successfully with external branches, yet.)

/workdir/integrations/optimizely/lib/index.js
--
  | 292:15  warning  'state' is already declared in the upper scope  no-shadow
  |  
  | /workdir/integrations/optimizely/test/index.test.js
  | 106:11  warning  for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array  no-restricted-syntax
  | 170:7   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  | 666:9   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  | 690:9   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  | 720:9   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  | 747:9   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  | 774:9   warning  'executeAsyncTest' was used before it was defined                                                                                                                      no-use-before-define
  |  
  | ✖ 8 problems (0 errors, 8 warnings)
nchilada

comment created time in 3 months

push eventsegmentio/analytics.js-integrations

Tyson Mote

commit sha d0e1e56a9e2b6dbc91d7ec14ccb45d2b1280e200

Revert root yarn.lock changes

view details

push time in 3 months

push eventsegmentio/analytics.js-integrations

Tyson Mote

commit sha ae3aeba809833321b3e2bb86ce97dd2ad4053acd

Revert root yarn.lock changes

view details

push time in 3 months

PR opened segmentio/analytics.js-integrations

Release #481 (refactor: Clean up the Optimizely integration)

What does this PR do?

Releases #481, contributed by Optimizely.

Are there breaking changes in this PR?

See #481

Any background context you want to provide?

See #481

Is there parity with the server-side/android/iOS integration components (if applicable)?

N/A

Does this require a new integration setting? If so, please explain how the new setting works

No.

Links to helpful docs and other external resources

See #481

+813 -1233

0 comment

5 changed files

pr created time in 3 months

pull request commentsegmentio/analytics.js-integrations

refactor: Clean up the Optimizely integration

@nchilada Thanks for this! I'm going to work on releasing this shortly.

nchilada

comment created time in 3 months

Pull request review commentsegmentio/analytics.js-integrations

refactor: Clean up the Optimizely integration

 +4.0.0 / 2020-06-12+==================++  * Don't attempt to interface with Optimizely Classic Web, since Classic is finally dead+  * Prepare to support Optimizely Edge, an alternative to Optimizely Web+  * Drop all references to customCampaignProperties. It seems to have been documented [here](https://segment.com/docs/connections/destinations/catalog/optimizely-web/#settings) but it couldn't possibly have worked.

Thanks for the heads-up! I'll work on getting the documentation updated.

nchilada

comment created time in 3 months

pull request commentsegmentio/analytics.js-integrations

feat(optimizely): Expose Edge API to track Edge experiments

@patrickshih-optimizely I'm going to work on getting this merged and released. Can you rebase on #481? I hit some merge conflicts and I think you'd be best positioned to resolve them. Thanks!

patrickshih-optimizely

comment created time in 3 months

more