• Stars
    star
    119
  • Rank 297,930 (Top 6 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created about 9 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Data Lasso

Data Lasso is a visualization tool that allows exploration of arbitrary set of data. It is built to be agnostic to the structure and formatting of data.

Imagine this.

You have a set of multi-dimensional data - thousands of entries, each entry having multiple attributes. You might have made a snapshot from your logs, or a slice of your database records, or some other kind of a very rich data.

And you want to get a sense of that data. Explore it, understand it, and get a clear picture of it in your head. You have data in your hands, now all you need is to visualize it. You don't want to spend hours setting up R; You don't want to see OpenOffice spreadsheets take down your CPU trying to build a scatter plot; You just want to see your data.

That is what Data Lasso is for. There is no setup. You don't need to prepare your data. It can visualize half a million entries easily. All of that - in three dimensional space, so you can have complete freedom of looking at your data.

Usage

It's easy:

  • Data input

    Any CSV, TSV or JSON will do. As long as data reminds of a table, you can use it. Rows are entries, columns are attributes of entries.

    Data Lasso will try to silently parse field with name ip into ip subnets on file upload. Field named email will be parsed to extract domain. Field named geo will be broken down onto city and country.

    Once you have your file - just upload it to Data Lasso. Or, just use this sample data set.

  • 3D space

    There is no configuration necessary. When you upload your data, Data Lasso recognizes attributes in your data. Then you can pick what attribute you want to map to what axis - X, Y, Z or Color.

  • Visualize

    Hit 'Go' and that's it. Data is plotted in front of you. Want to select something? Hit spacebar, and you can use polygonal selection tool to select and drill into data.

Finished reading? Head out here to use Data Lasso.

Use Data Lasso on your system

Data Lasso can be be used as a standalone app. Data Lasso runs entirely in a browser, so this repository contains everything necessary to get started.

Checkout the repository locally, run npm install to install necessary dependencies and then run npm start to start local server. Data Lasso will be served on your localhost:3000.

Why would you do that? Because Data Lasso can be extended:

Modules

Modules in Data Lasso allow you to add functionality to Data Lasso. Want to display a custom list of selected entries? Want to plug in Data Lasso in a stream of data? Modules will allow that.

In a nutshell, modules have access to Data Lasso's internal event bus - so you can hook into anything you want.

There is a sample module in the repository for your reference.

Use as part of another application

Data Lasso can be used as part of another application, using CommonJS module structure - for example, if you use browserify on your front end stack:

  1. Install data lasso as an npm module with npm install data-lasso --save
  2. Use it in your code with require('data-lasso');

Visualization

Visualization makes use of 3 spatial dimensions and color. Any attribute can be used for plotting in any of the 4 dimensions.

All dimensions are currently plotted on a simple linear scale. There are no ticks on axis with precise values - but you can see exact values for particular graph entries by hovering over them.

Under the hood, Data Lasso is build using wonderful three.js library to work with WebGL, uses d3 for some data parsing niceties, and uses to browserify to make development feel one step closer to future.

Browser Support

Best usage scenario is a desktop browser with a mouse, although trackpad will work too. While Data Lasso does not care what flavor of OS you use, Data Lasso was not tested in browsers other then Chrome and Firefox.

Effectively handling selecting in 3D space without a mouse is hard, so unfortunately usage on mobile devices is out of scope at this point.

Support

Feel free to open issue on github if you encounter a bug. If you want to get more details on the roadmap of the product, or potentially use it in your stack and need help - contact the author;

License

Copyright 2015-2019 Tumblr Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

Backboard

A motion-driven animation framework for Android.
Java
1,694
star
2

Graywater

An Android library for decomposing RecyclerView layouts to improve scroll performance.
Java
1,209
star
3

colossus

I/O and Microservice library for Scala
Scala
1,144
star
4

jetpants

MySQL toolkit for managing billions of rows and hundreds of database machines
Ruby
1,136
star
5

pytumblr

A Python Tumblr API v2 Client
Python
723
star
6

tumblr.js

JavaScript client for the Tumblr API
JavaScript
645
star
7

collins

groovy kind of love
Scala
572
star
8

Bookends

A UI widget for adding headers and footers to RecyclerView
Java
539
star
9

Remember

A preferences-backed key-value store
Java
523
star
10

policy

Tumblr policies and guidelines
453
star
11

laphs

Apple Live Photo support on the web, courtesy of Tumblr
JavaScript
447
star
12

TMTumblrSDK

Unopinionated and flexible library for easily integrating Tumblr data into your iOS or OS X application.
Objective-C
432
star
13

tumblr.php

Tumblr API v2 PHP Client
PHP
407
star
14

k8s-sidecar-injector

Kubernetes sidecar injection service
Go
343
star
15

kanvas-ios

Kanvas: a creation tool for iOS
Swift
315
star
16

jumblr

Tumblr API v2 Java Client
Java
277
star
17

gocircuit

Go
237
star
18

genesis

A tool for data center automation
Ruby
156
star
19

docker-registry-pruner

Tool to apply retention logic to docker images in a Docker Registry
Go
127
star
20

docs

Tumblr's public platform documentation.
107
star
21

XExtensionItem

Easier sharing of structured data between iOS applications and share extensions
Objective-C
88
star
22

PermissMe

Java
75
star
23

webpack-web-app-manifest-plugin

A webpack plugin that generates a PWA manifest and integrates with the assets JSON.
JavaScript
75
star
24

k8s-secret-projector

Kubernetes Secret generation from secure credential repos
Go
72
star
25

k8s-config-projector

Create Kubernetes ConfigMaps from configuration files
Go
65
star
26

tumblrclient.go

This is a concrete implementation of the ClientInterface with additional convenience methods defined right on the client object
Go
42
star
27

go-collins

Collins API Client in Go - https://tumblr.github.io/collins
Go
41
star
28

tumblr.go

This is a library which provides structs and functions for accessing the Tumblr API
Go
37
star
29

JXHTTP

you know, for networking
Objective-C
25
star
30

Spectacles

A tiny library for parsing JSON podspecs.
Objective-C
23
star
31

gulp-css-hashes

JavaScript
18
star
32

tsd_proxy

Clojure
15
star
33

tumblr-repl

REPL for the Tumblr API, built on tumblr.js
JavaScript
12
star
34

collins_shell

Ruby
3
star
35

consolr

Ruby
1
star
36

chorus-timekeeper

DI with timekeeping.
PHP
1
star
37

collins_notify

Ruby
1
star
38

collins_client

Ruby
1
star
39

collins_auth

Ruby
1
star
40

slackr_archiver

Ruby
1
star