Git Product home page Git Product logo

ebollens / dts Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 170 KB

The Device Telemetry Stack is a software library that exposes telemetry about a visitor client-side and optionally server-side. DTS was initially motivated by the Mobile Web Framework (MWF), which required real-time information about a device server-side. Because the MWF runs on one host while apps that use it run on others, it required the support for exposure of DTS information to a third-party host. However, recognizing that not all users desire all grades of functionality, DTS is built under a stack architecture whereby some components may be included while excluding others.

License: Other

PHP 25.98% JavaScript 74.02%

dts's People

Contributors

ebollens avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

fl-otc307

dts's Issues

Separation of Server and Client Files

Right now, the server and client files are all coupled under a single directory. To emphasize the ability to decouple these to the point of federation, or even minimally to the point of running one copy of DTS on a server hosting multiple apps that use it, they should be decoupled.

Improved Minification

The current minifier jsmin.php has two problems:

  1. It is a dead project
  2. It does not do local variable obfuscation

While the former isn't an issue so long as no bugs are encountered, the latter is a problem because the payloads are larger than they need to be. Using YUI (an online example at http://www.refresh-sf.com/yui), compression cuts down another 24% on file size.

Update for MWF 1.3

MWF 1.3 made some changes to DTS.

This library need to be brought inline.

Client-side Cookie Processing Libraries

Client-side PHP code right now can use DTS_Cookie to access the cookies written by DTS. However, these do not have "friendly" names, nor are their contents friendly, instead chosen for smaller payloads. As such, need client-side PHP libraries to interpret these in a more coder-friendly manner.

Capability Exposure Server-side (dts.server.capability)

MWF just used classifications to break up files into multiple grades. However, DTS should expose all capability information derived from dts.capability. Because of the large number of these, need to come up with a scheme for encoding them as tightly as possible - likely hex encoding four boolean values to one byte. These will then be interpreted by a client-side library designed for this purpose as described in #3.

Refactor Cookies

Right now, the user agent cookie is way too big, and I'd like to see if I can tighten it up. This is less-so true with the classification cookie, but still it's got a few extra bytes I could milk out by getting rid of the urlencoding. However, this is tricky, since urlencoding is required for cookies, meaning need to come up with a scheme that doesn't require encoding special chars.

Build Script

Should provide a build script that can prompt a user to configure their js.php and passthru.php files and render it out as static .js files so that PHP isn't needed to run this - of course, federation.php will still need to be run, or a ported equivalent in another language, but the simplicity of this latter file is more conducive than the others.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.