Team 11: Jack's Hacks

Members

  • David Richardson
  • Paul Wells
  • Max Parmer

Project Status

1:00pm

  • paul wakes up
  • meet up in irc
  • shuffle teammates (max officially joins wooo!)

2:30

  • argue about what we’re going to make
  • slap some hoes and outline a plan for the project

4:00pm

  • fight with java
  • make some graphics

5:30pm ish

  • randy drops off irc... never to be seen again
  • created client side component ala urchin.js
  • created server side recording component
  • grabbed some preexisting logs and ran some quick aggregation to provide a rough outline for visualization data

9:00pm

  • expand the scope of the project to include predicting user patterns using svd based math wizardy
  • work on visualization hottness

11:00pm

  • move svd calculations to beefier computer to avoid killing elowel.org
  • make some sample csv data to test visualization

1:30am

  • argue with geometry

2:00am or so

  • finished the ai script to train suggest system... tweaked, refined, etc...
  • created some scripts to dump aggregated and filtered log information via csv to the java applet
  • drank all the yerba mate ever...

6:30am

  • rocked the graphics and math and what not
  • refining the visualization system and testing with real data

7:30am

  • making some breakfast
  • documenting code

10:30am

  • dance about in celebration of the first time in years i’ve completely commented/documented anything...
  • check the weather... another crappy rainy day - high 49F low 41F

Project Description

Our application will visualize the relationships on blogging communities. It will create a series of tubes connecting blog users based on the number of visits to that blog by other visitors in the same community.

We will be using sample data from our personal blogging community (http://elowel.org) but the application itself would be a server side script and client-side javascript installed by the owner of the blogging community that would begin tracking relationships based on new data from the moment it was installed.

Project approved. — Trevor Johns 2007/02/18 15:39

Project Details

pureWitchcraft

–Recommendations and Social Networking in Java, Javascript, PHP and MySQL

Overview

On the server side pureWitchcraft provides a framework for viewership data collection and recording from a remote server. Given this traffic data a learning script based on principles of regression analysis and singular value decomposition is used to create parameters for predicting pages that a user might like to visit given past viewing patterns as they relate to other recorded traffic in the community.

On the clientside pureWitchcraft leverages the data aggregated server side and the results of the AI calculations to visualize perceived social networks and usage statistics as a series of tubes connecting the various members of the participating communities. These visualizations come in the form of interconnected nodes representing either visits between users or pages that the AI thinks a given user is likely to enjoy.

Components

Core scripts
  • Collector.js and tester.html: A script to be placed on a user’s page, this script sends the username/uid of the page owner and the username/uid of the page viewer back to the server through a hidden iframe via GET. Tester.html is a sample of how this script embeds, including vital variable definition. The variable defined here are cookieName (the name of the cookie to access), viewerRegexp/pageRegexp (the regular expressions to extract the uid from a page (page uid) and the uid from the set cookie (viewer’s uid), blogName exists so that multiple sites can store their data in a single table safely and storePhpURI which is the full address of store.php to refer back to.
  • Store.php: Recieves data from collector.js and writes it to the database, if the appropriate tables do not exist it creates them.
  • Csv2.php: Aggregates the appropriate data from MySQL and outputs it as CSV so the socket can remain only accessible by localhost and java applet’s do not touch the database directly. Most importantly it determines connections in a social network and represents the bi-directionality of the connection as true of false (jim visits bob’s page frequently, but bob does not visit jim’s page frequently so the row is “jim,bob,false” if bob reciprocated it would be “jim,bob,true”).
  • Svd.php: Reads usage data from a database and uses it in a training loop which seeks to isolate attributes of the pages and preferences relating to those attributes given patterns observed in the visits. Attributes are abstract concepts but they can be thought of as things like “emones”, “upbeatness”, “gramar”, etc... The training loop attempts to match attributes to users and pages by incrementally adjusting the properties of individual attributes one at a time in order to closer match known patterns in the data. The trends observed are then stored in the database and can be used later to guess unkown values and make suggestions to the user regarding pages they might enjoy reading.
  • Suggest.php: Matches a given user with the most compatible pages based on the data generated by svd.php and outputs it in CSV format.
  • Tubism.class: Shows the interconnectedness (by tubes) between a given user and their reading habits.
  • Suggest.class: Shows suggestions for a given user.
Tubes
  • Graphics for tubism.class
    • arrowhead.png: arrow point
    • oneway.png: image for a single direction connection
    • twoway.png: image for a bidirectional connection

Screenshots

Source Code

pureWitchcraft.zip pureWitchcraft.tar.gz (few examples of canvas implementations and a bug fix or two)

EC2 and S3

EC2 Server: None assigned. (Click here to request a server instance).

S3 Bucket: Not assigned. (Click here to request a bucket).

Back to the main Teams page.

 
jack_s_hacks.txt · Last modified: 2007/02/19 18:49 by 71.193.136.121
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki