Skip to content
View adamjpatterson's full-sized avatar

Organizations

@faranalytics
Block or Report

Block or report adamjpatterson

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
adamjpatterson/README.md

Introduction

I am a data architect and full stack engineer with an interest in machine learning. My formal education includes a Master's degree in applied data science.

My personal GitHub repositories are pushed to the FAR Analytics & Research GitHub organization. Examples of my work can also be found in the repositories of the Educational Technology Collective.

My University of Michigan enterprise GitHub account is located here.

A selection of public projects that I am working on:

  • Network⬄Services A type safe asynchronous RPC Service facility for connecting your apps to the network and scaling them using Worker threads.
  • Socketnaut Scalable multithreaded Node.js servers made easy.
  • Port Agent A RPC-like facility for making inter-thread function calls.
  • memoir A type-checked asynchronous logging facility with a simple and familiar interface.
  • Python memoiz A thread-safe memoization decorator for Python.
  • JS HTML Renderer A JS DSL for rendering HTML on the client or the server.
  • JupyterLab Telemetry A JupyterLab extension for capturing JupyterLab events deployed to the Coursera learning environment.
  • Scalability A type-safe service scaling facility built on Network⬄Services.
  • Neural-pleX An object oriented neural network implementation.

Featured Projects

Network-Services provides a simple and intuitive toolkit that makes scaling your app and connecting it to the network easy. You can use it to transform your application into a network-connected scalable Service Application. You can connect to your Service App, from the same process or another process, and call methods on it using a type-safe Service API.

Socketnaut makes scaling native Node.js servers easy. A Socketnaut Service consists of a TCP proxy and a pool of HTTP servers. Socketnaut will uniformly distribute incoming TCP sockets across the pool of allocated servers. This strategy allows for both distribution and parallel processing of incoming requests. Socketnaut consumes native Node.js servers (e.g., http.Server, https.Server, net.Server, tls.Server); hence, if you know the Node API, you already know how to build applications on Socketnaut.

Socketnaut can be combined with performant Node.js web application frameworks (e.g., Fastify, Koa, Express) in order to easily scale the main module of the web application.

A single Socketnaut instance can handle thousands of concurrent connections when running on capable hardware. When under load, Socketnaut will spawn HTTP servers in order to meet demand and release resources as demand declines; hence, Socketnaut mitigates its memory footprint by effectively managing its thread pool.

Port Agent provides a simple and intuitive interface that makes inter-thread function calls easy. Port Agent will marshal the return value or Error from the other thread back to the caller. The other thread may be the main thread or a worker thread.

Scalability is a type-safe service scaling facility built on Network⬄Services. It provides a simple and intuitive API for scaling Node.js modules using Worker threads. You can create a Service App in your scaled module and call its methods from the main thread using a Service API. Scalability allows you to easily transform your single threaded application into a type-safe multithreaded one.

A JS DSL for rendering HTML on the client or the server. The JS HTML Renderer provides a concise and intuitive syntax for writing HTML using JavaScript.

Neural-pleX is an object oriented neural network implementation. The Neural-pleX API consists of Network, Layer, and Neuron constructors. The networks can be easily visualized using a visualization library.

Links

Notes

git reset --mixed $(git log --pretty=format:"%h" | tail -n -1) && git status && git add . && git commit -m 'more' && git push --force

Pinned

  1. faranalytics/socketnaut faranalytics/socketnaut Public

    Scalable multithreaded Node.js servers made easy.

    TypeScript 9 1

  2. faranalytics/scalability faranalytics/scalability Public

    Scalability is a type-safe service scaling facility built on Network-Services.

    TypeScript

  3. adamjpatterson adamjpatterson Public

    Data Architect and Full Stack Engineer with an Interest in Data Science

  4. faranalytics/network-services faranalytics/network-services Public

    A type-safe asynchronous RPC Service facility for connecting your app to the network.

    TypeScript 1

  5. faranalytics/js-html-renderer faranalytics/js-html-renderer Public

    A JS DSL for rendering HTML on the client or the server.

    TypeScript

  6. faranalytics/neuralplex faranalytics/neuralplex Public

    An object oriented neural network implementation.

    Python